Part Number Hot Search : 
DD870 CTS24 1206UFE 1206UFE KSB834W C4104 A105M HZK24L
Product Description
Full Text Search
 

To Download 20-101-0303 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  op7100 serial graphic display user?s manual 019?0065 ? 070831?o
op7100 user?s manual part number 019-0065 ? 0 7 083 1-o ? printed in u.s.a. ? 1999?200 7 rabbit semiconductor inc. ? all rights reserved. rabbit semiconductor reserves the right to make changes and improvements to its products without providing notice. trademarks ? dynamic c ? is a registered trademark of rabbit semiconductor inc. ? windows ? is a registered trademark of microsoft corporation ? plcbus ? is a trademark of rabbit semiconductor inc. rabbit semiconductor inc. www.rabbit.com no part of the contents of this manual may be reproduced or transmitted in any form or by any means without the express written permission of rabbit semiconductor. permission is granted to make one or more copies as long as the copyright page contained therein is included. these copies of the manuals may not be let or sold for any reason without the express written permission of rabbit semiconductor. the latest revision of this manual is available on the rabbit semiconductor web site, www.rabbit.com , for free, unregistered download.
table of contents iii op7100 t able of c ontents about this manual vii chapter 1: overview 11 introduction .......................................................................................... 12 features ................................................................................................ 13 options ............................................................................................ 13 development and evaluation tools ..................................................... 14 software .......................................................................................... 14 ce compliance .................................................................................... 15 chapter 2: getting started 17 initial op7100 setup ............................................................................ 18 parts required ................................................................................. 18 setting up the op7100 ................................................................... 18 connecting the op7100 to a host pc .................................................. 20 running dynamic c ............................................................................. 22 chapter 3: hardware 23 op7100 subsystems overview ............................................................ 24 computing module ......................................................................... 24 power management ............................................................................. 25 adm691 supervisor chip .............................................................. 26 handling power fluctuations ........................................................ 26 watchdog timer ........................................................................... 27 power shutdown and reset .......................................................... 28 pfi ?early warning? ..................................................................... 28 memory protection ....................................................................... 29 battery backup ............................................................................. 29 system reset ................................................................................... 29 liquid crystal display (lcd) ............................................................. 30 contrast adjustment ........................................................................ 30 background ..................................................................................... 31 coordinate systems ......................................................................... 32 lcd controller chip ...................................................................... 32 keypad interface .................................................................................. 34
iv table of contents op7100 digital i/o ............................................................................................ 35 serial communication .......................................................................... 36 rs-232 communication .................................................................. 38 receive and transmit buffers ....................................................... 38 cts/rts control ......................................................................... 39 modem communication ............................................................... 39 rs-485 communication .................................................................. 40 developing an rs-485 network ................................................... 40 use of the serial ports ..................................................................... 42 z180 serial ports .......................................................................... 43 asynchronous serial communication interface ................................... 45 asci status registers ..................................................................... 45 /dcd0 (data carrier detect) ........................................................ 45 tie (transmitter interrupt enable) ............................................... 45 tdre (transmitter data register empty) ................................... 45 cts1e (cts enable, channel 1) ................................................. 46 rie (receiver interrupt enable) ................................................... 46 fe (framing error) ....................................................................... 46 pe (parity error) ........................................................................... 46 ovrn (overrun error) ................................................................ 46 rdrf (receiver data register full) ............................................ 46 asci control register a ................................................................ 47 mod0?mod2 (data format mode bits) .................................... 47 mpbr/efr (multiprocessor bit receive/error flag reset) ........ 47 /rts0 (request to send, channel 0) ............................................ 47 cka1d (cka1 disable) .............................................................. 47 te (transmitter enable) ............................................................... 47 re (receiver enable) ................................................................... 48 mpe (multiprocessor enable) ...................................................... 48 asci control register b ................................................................ 48 ss (source/speed select) ............................................................. 48 dr (divide ratio) ........................................................................ 49 peo (parity even/odd) ................................................................ 49 /cts/ps (clear to send/prescaler) ............................................... 49 mp (multiprocessor mode) .......................................................... 49 mpbt (multiprocessor bit transmit) .......................................... 49 chapter 4: software 51 supplied software ................................................................................ 52 digital i/o ............................................................................................ 53 real-time clock (rtc) ....................................................................... 54 display ................................................................................................. 55 flash eprom ................................................................................. 55
table of contents v op7100 dynamic c 32 libraries ....................................................................... 56 op71hw.lib .................................................................................. 56 keypad programming ..................................................................... 65 using dynamic c v. 5.xx ..................................................................... 66 ezioop71.lib ............................................................................... 66 glcd.lib ...................................................................................... 66 kp_op71.lib ................................................................................. 70 sys.lib .......................................................................................... 72 upgrading dynamic c ......................................................................... 73 new lcd controller chip .............................................................. 73 chapter 5: graphics programming 75 initialization ......................................................................................... 76 drawing primitives .............................................................................. 76 plot a pixel ...................................................................................... 76 plot a line ....................................................................................... 77 plot a circle .................................................................................... 77 plot a polygon ................................................................................. 77 fill a circle ..................................................................................... 77 fill a polygon .................................................................................. 77 draw a bitmap ................................................................................ 77 font and bitmap conversion ............................................................... 78 using the font/bitmap in your program ........................................ 79 printing text ......................................................................................... 80 keypad programming .......................................................................... 81 initialization .................................................................................... 81 scanning the keypad ....................................................................... 81 reading keypad activities .............................................................. 81 chapter 6: installation 83 grounding ............................................................................................ 84 installation guidelines ......................................................................... 85 mounting .............................................................................................. 86 bezel-mount installation ................................................................. 86 general mounting recommendations ............................................. 87 appendix a: troubleshooting 89 out of the box ...................................................................................... 90 dynamic c will not start .................................................................... 91 dynamic c loses serial link .............................................................. 91 op7100 repeatedly resets .................................................................. 91 common programming errors ............................................................. 92
vi ? ? ? ? ? table of contents op7100 appendix b: specifications 93 electrical and mechanical specifications ............................................ 94 lcd dimensions ............................................................................. 94 bezel dimensions ........................................................................... 94 general specifications .................................................................... 95 header and jumper configurations ..................................................... 96 appendix c: memory, i/o map, and interrupt vectors 99 op7100 memory ............................................................................... 100 execution timing .......................................................................... 101 memory map ..................................................................................... 102 input/output select map ............................................................... 102 z180 internal input/output registers addresses 00-3f ................ 102 epson 72423 timer registers 0x4180?0x418f ............................ 104 other registers .............................................................................. 105 interrupt vectors ................................................................................ 106 power-failure interrupts ............................................................... 107 interrupt priorities ......................................................................... 107 appendix d: serial interface board 109 introduction ........................................................................................ 110 external dimensions .......................................................................... 111 appendix e: backup battery 113 battery life and storage conditions .................................................. 114 replacing the lithium battery ........................................................... 114 battery cautions ................................................................................ 115 index 117 schematics 125
op7100 about this manual vii a bout t his m anual this manual provides instructions for installing, testing, configuring, and interconnecting the rabbit semiconductor op7100 touchscreen operator interface. instructions are also provided for using dynamic c functions. assumptions assumptions are made regarding the user's knowledge and experience in the following areas. ? ability to design and engineer the target system that interfaces with the op7100. ? understanding the basics of operating a software program and editing files under windows on a pc. ? knowledge of the basics of c programming. for a full treatment of c, refer to the following texts. the c programming language by kernighan and ritchie and/or c: a reference manual by harbison and steel ? knowledge of basic assembly language and architecture for the z180 microprocessor. for documentation from zilog, refer to the following texts. z180 mpu user's manual z180 serial communication controllers z80 microprocessor family user's manual
op7100 viii about this manual acronyms table 1 lists and defines the acronyms that may be used in this manual. icons table 2 displays and defines icons that may be used in this manual. table 1. acronyms acronym meaning eprom erasable programmable read-only memory eeprom electronically erasable programmable read-only memory lcd liquid crystal display led light-emitting diode nmi nonmaskable interrupt pio parallel input/output circuit (individually programmable input/output) prt programmable reload timer ram random access memory rtc real-time clock sib serial interface board sram static random access memory uart universal asynchronous r eceiver transmitter table 2. icons icon meaning icon meaning refer to or see note please contact ti p tip caution high voltage fd factory default
op7100 about this manual ix conventions table 3 lists and defines the typographical conventions that may be used in this manual. pin number 1 a black square indicates pin 1 of all headers. measurements all diagram and graphic measurements are in inches followed by millime- ters enclosed in parenthesis. j1 pin 1 table 3. typographical conventions example description while courier font (bold) indicates a program, a fragment of a program, or a dynamic c keyword or phrase. // in-01? program comments are written in courier font, plain face. italics indicates that something should be typed instead of the italicized words (e.g., in place of filename , type a file's name). edit sans serif font (bold) signifies a menu or menu selection. . . . an ellipsis indicates that (1) irrelevant program text is omitted for brevity or that (2) preceding program text may be repeated indefinitely. [ ] brackets in a c function?s definition or program segment indicate that the enclosed directive is optional. < > angle brackets occasionally enclose classes of terms. a | b | c a vertical bar indicates that a choice should be made from among the items listed.
op7100 x about this manual
op7100 overview 11 c hapter 1: o verview chapter 1 provides an overview and a brief description of the op7100 features.
op7100 12 overview introduction the op7100 is a serial graphic display in a compact, easy to integrate module. the op7100 features an lcd that has a white background with blue images. the lcd has pixel graphics and provides two-color (mono- chrome) displays. five standard fonts are included in the supplied soft- ware. additional custom fonts are easily created to meet the needs of an application. the op7100 can operate with rabbit semiconductor single-board comput- ers or other serial displays over an rs-485 network. the op7100 also supports rs-232 communication. the op7100 display terminal uses display technologies that require mini- mal mounting depth and offer maximum viewing angles. the memory allows up to 25 application-screen bitmaps (240 320) to be stored with- out compression in a 256k flash eprom. a further 256k is available for the application in a second flash eprom. figure 1-1 illustrates the standard op7100 board layout.   
       
                      !"   # $ %    %  !  &   '  % &     &  '            &%  &    & & &       (  ) * *   ( ( + '        %               %      %  &        & & & % &  &  &%  & & &  ,-./ & &  &    %            ! !     &    % & &  &    &%    %  &                  
   %   &       %       %     &  
    %       
      figure 1-1. op7100 board layout
op7100 overview ? ? ? ? ? 13 features the op7100 includes the following features. ? 240 320 ? vga lcd (with touchscreen on op7100 only) ? jumper-selectable background?positive (blue images on white background) or negative (white images on blue background) ? software-controlled cold-cathode fluorescent backlighting ? software-controlled contrast is enabled/disabled with jumper settting ? temperature compensation for lcd contrast changes with temperature ? rs-485 and rs-232 serial communication up to 57,600 bps ? 8 cmos/ttl-level digital inputs and 8 cmos/ttl-level digital outputs ? 18.432 mhz clock with z180 microprocessor, 9.216 mhz lcd controller ? 256k flash eprom for program, 256k flash eprom for screen bitmaps ? switching voltage regulator appendix b provides detailed specifications for the op7100. the op7100 also includes battery-backed ram (128k) and a battery- backed real-time clock a watchdog timer, and power-failure interrupt. options the op7100 series of serial displays has two versions. table 1-1 lists their standard features. either model may be used in either a portrait or a landscape orientation by using the corresponding software library. for ordering information, call your rabbit semiconuctor sales representative.  table 1-1. op7100 series features model features op7100 serial graphic display, touchscreen, blue and white screen, ?vga lcd with bezel m ount, software contrast control op7110 op7100 with no touchscreen, manual contrast control
op7100 14 overview development and evaluation tools the op7100 is supported by a tool kit that include everything you need to start development with the op7100. the tool kit includes these items. ? serial cable ? 24 v dc power supply capable of delivering 1.1 a ? user?s manual with schematics an optional serial interface board (sib) is available to program the op7100 when a second rs-232 serial port is needed by the application being developed. for ordering information, call your rabbit semiconductor sales representative. software the op7100 is programmed using rabbit semiconductor?s dynamic c, an integrated development environment that includes an editor, a c compiler, and a debugger. library functions provide an easy and robust interface to the op7100. rabbit semiconductor?s dynamic c reference manuals provide complete software descriptions and programming instructions.
op7100 overview 15 ce compliance the op7100 has been tested and was found to be in conformity with applicable en immunity and emission standards. note the following requirements for incorporat- ing the op7100 into your application to comply with ce requirements. ? the power supply provided with the tool kit is for development purpose only. it is the customer?s responsibility to provide a ce compliant power supply for their end-product application. ? the op7100 has been tested to meet the following immunity standards. en61000-4-2 (esd) en61000-4-3 (radiated immunity) en61000-4-4 (eft) en61000-4-6 (conducted immunity) additional shielding or filtering may be required for a heavy industrial environment. ? the op7100 has been tested to meet the en55022 class a emissions standard with ferrite rfi suppressors on the i/o cables. additional shielding or filtering may be needed to meet class b emissions standards. since rabbit semiconductor products are connected to other devices, good emc prac-tices should be taken to ensure compliance. ce compliance is eventually the responsibility of the integrator. for more information on tips and technical assistance, visit our web site at www .rabbit.com/products/ ce _ certification/, or contact your local authorized rabbit semiconductor distributor.
op7100 16 overview
op7100 getting started 17 c hapter 2: g etting s tarted chapter 2 provides instructions for connecting the op7100 to a host pc and running a sample program.
op7100 18 getting started initial op7100 setup parts required ? 24 v unregulated dc power supply capable of delivering up to 1.1 a ? serial cable the necessary parts are supplied with the tool kit. setting up the op7100 1. remove the green power connector shown in figure 2-1 from the back of the op7100. 2. attach the bare leads from the power supply to the terminals on the power connector as shown in figure 2-1. 3. plug the connector back into the power connection header at the back of the op7100. watch the polarity of the connection so that the banded wire from the power supply goes to dcin as shown in figure 2-1. figure 2-1. op7100 power supply connections be careful to connect the power supply wires to the correct screw terminals on header j8. the op7100 may be destroyed if the power supply is connected to the wrong screw terminal. a protective diode prevents damage to the op7100 if the power supply polarity is reversed. 4. plug the power supply into a wall outlet. the display should now light up with the demonstration screens shown in figure 2-2.      
 
      
 # $
op7100 getting started 19 

             
     !"  # $   %&   '%  (  !   (  (   )*! )   )   (*! (   (   )  ! )   )    +++  ,  -,./+./+    ! ""0  " 1!           234
  *      
  )/,  )  /  ),  ,  555675!86  figure 2-2. op7100 demo screens
op7100 20 getting started  
 

      
   

 

  !"#       
     $ %&'()*+,-.(/ 0.12+03/0,456.,'2'/7 8/01+13.4+8/-)'1.1/  % connecting the op7100 to a host pc 1. unplug any power supply connected to the op7100 and remove the back cover from the op7100 assembly. the back cover is attached with the two screws shown in figure 2-3. figure 2-3. op7100 back cover 2. establish a serial communication link. a pc ?communicates? with the op7100 via serial port 0 or the clocked serial input/output port on the op7100?s z180 microprocessor. there are two options for the serial communication link. option 1 (via optional sib)?connect an rj-12 cable between the pc and the sib. an rj-12 to db9 adapter is included for db9 pc com ports. remove any jumpers that may be installed on the op7100?s header j4 and plug the sib?s 8-pin connector onto header j4 as shown in figure 2-4. make sure that pin 1 on the ribbon cable connector (on the striped side) matches up with pin 1 on j4 (indicated by a small white circle next to the header). option 2 (directly)?place a jumper across pins 1?2 of header j4 on the op7100 as shown in figure 2-5. connect the pc com port to the db9 jack on the op7100, header j7, using the db9 to db9 serial cable supplied with the tool kit. 3. the op7100 is now ready for programming. the power supply may be plugged in and turned on.
op7100 getting started 21 marked conductor to pin 1 pin 1   !  figure 2-4. sib programming connection figure 2-5. direct programming connection option 2 uses an rs-232 serial port to program the op7100. if this serial port is needed in your application, use the sib as described in option 1. see chapter 3, ?hardware,? for more information on the serial ports. j4 sib2 0         % 
op7100 22 getting started running dynamic c double-click the dynamic c icon to start the software. note that the pc attempts to communicate with the op7100 each time dynamic c is started. no error messages are displayed once communication is established. the communication rate, port, and protocol are all selected by choosing serial options from dynamic c?s options menu. the sib and the op7100 both set their baud rate automatically to match the communication rate set on the host pc using dynamic c ( 9600 bps, 19,200 bps, 28,800 bps, or 57,600 bps). to begin, adjust the communications rate to 19,200 bps. make sure that the pc serial port used to connect the serial cable (com1 or com2) is the one selected in the dynamic c options menu. select the 1-stop-bit protocol. see appendix a, ?troubleshooting,? if an error message such as target not responding or communication error appears. once the necessary changes have been made to establish communication between the host pc and the op7100, use the dynamic c shortcut to reset the controller and initiate communication. at this point, the lcd should be blank and the backlight should be off. once communication is established, load the sample program defdemol.c in the dynamic c samples\qvga subdirectory. compile and run the program by pressing f9 or by selecting run from the run menu. the op7100 should now alternately display the large font (17x 35h) and the small font (6w 8h). the fonts should scroll across the display. compiling and running this sample program will overwrite the demonstration program shown in figure 2-3.
op7100 hardware 23 c hapter 3: h ardware chapter 3 describes how to use the op7100. sections are included to describe the following features. ? subsystems overview ? power management ? liquid crystal display ? keyboard interface ? digital i/o ? serial communication
op7100 24 hardware op7100 subsystems overview the op7100 consists of several subsystems, including a computing module, serial communication channels, lquid crystal display (lcd), a buzzer, and a keypad interface. figure 3-1 provides a block diagram of the op7100. figure 3-1. op7100 block diagram computing module the op7100 computing module consists of a zilog z180 microprocessor, 128k of battery-backed static ram, and 512k of flash eprom. the computing module operates in tandem with a real-time clock and a watchdog timer/microprocessor supervisor. the z180 cpu runs at 18.432 mhz, and the lcd controller runs at 9.216 mhz. the watchdog timer/microprocessor chip provides a watchdog timer function, power-failure detection, ram protection, and battery backup. the real-time clock provides time and date information to applications running on the op7100. the eeprom is simulated in flash eprom for consistency with rabbit semiconductor controllers whose software libraries rely on exchanging information with the eeprom. the simulated eeprom in the op7100 is unused at the present time, but addresses 0 and 1 are reserved for furture use. do not use these addresses in your application. flash2 sram rtc batt. z180 flash1 8 lcd control vram2 vram1 ?691 super. keypad interface epld backlight rs-232 rs-485 lcd 320 x 240 8 optional software contrast adjustment contrast adjustmen t drive s ense buzzer touchscreen 8 8 digital i/o
op7100 hardware 25 power management the op7100 was designed to operate from a 12 v to 30 v dc source, and consumes about 4.5 w with the backlight on, 1.5 w with the backlight off. to allow for a surge current when the op7100 is first turned on, the power supply used must be able to handle at least four times this power (for example, 800 ma at 24 v). the op7100 power supply is converted internally to supply three voltages. 1. a switching regulator outputs vcc (+ 5 v). 2. a linear regulator outputs vee (approximately ?20 v). 3. a high-voltage section supplies 300 v rms to drive the cold-cathode fluorescent backlight. the backlight can be turned on or off under software control whereby a high on the gate of q3 enables q1 and q2 to oscillate, and a low turns off q3, stopping the oscillation of q1 and q2. figure 3-2 shows these internal power supplies in a block diagram figure 3-2. block diagram of op7100 internal power regulators the dc input source can also be brought out on pin 9 of header j10, the de-9 connector, by installing a 0 ? resistor at r32. this option allows power to be supplied to a serial device connected to the op7100 as long as the serial device?s rs-232 port can handle the dc input on pin 9. be sure to use a power supply with sufficient capacity (for example, 1.1 a at 24 v) to handle surges when the op7100 and any devices connected to it are first turned on.  1 $   1 $   & % 2 3 &%  45 02 & % 2 3 & % 2 3   % 2 3 67-43/ 02 809    
 (
op7100 26 hardware adm691 supervisor chip a voltage divider consisting of r29 and r30 across the dc input provides a pfi signal to the adm691 watchdog supervisor. the adm691 chip performs the following services. ? watchdog timer resets the microprocessor if software ?hangs.? ? power-failure shutdown and reset. ? generates an ?early warning? power-failure interrupt (pfi) that lets the system know when power is about to fail. ? memory protection feature prevents writes to ram when power is low. ? supports battery backup. handling power fluctuations during a normal power-down, an interrupt service routine is used in response to a power-failure interrupt to save vital state information for the application for when power recovers. the amount of code that the interrupt service routine can execute depends on how fast the voltage decreases. theoretically, a power failure would cause a single power-failure interrupt . then, the interrupt service routine would restore data from the previous state when the voltage recovers. however, fluctuations in the dc input line could cause the adm691 to see multiple crossings of the 1.3 v input power-reset threshold. these multiple negative-edge transitions would, in turn, cause the z180 to see multiple power-failure interrupts. the adm691 generates a power-failure interrupt, int1. after reset, int1 must be enabled by a write into the itc register as well as execution of the ei instruction followed by a reti instruction. the z180 will restore saved state information when it executes the reti instruction. ideally, the z180 should be able to pop the stack and return to the location where the program was first interrupted. also, depending on the number of fluctuations of the dc input (and hence, the number of stacked power- failure interrupts), the processor?s stack can overflow, possibly into your program?s code or data. the following sample program shows how to handle a power-failure interrupt.
op7100 hardware 27 main(){ ... } ... char dummy[24]; ... #define int1 _ bit 0 ; bit 0 #int _ vec int1 _ vec power_fail_isr #asm power_fail_isr:: ld sp,dummy+24 ; force stack pointer ; to top of dummy vector ; to prevent overwriting ; code or data do whatever service, within allowable execution time loop: call hitwd ; make sure no watchdog reset ; while low voltage ld bc,int1 ; load the read int1 register ; to bc in a,(c) ; read the read int1 register ; for /pfo bit int1_bit, a ; check for status of /pfo jr nz,loop ; wait until the brownout ; clears timeout: ; then...a tight loop to ; force a watchdog timeout, jp timeout ; resetting the z180 #endasm of course, if the dc input voltage continues to decrease, then the op7100 will just power down. call the dynamic c function hitwd during the power-failure service routine to make sure that the watchdog timer does not time out and thereby reset the processor. the controller can continue to run at low voltages, and so it might not be able to detect the low-voltage condition after the watchdog timer resets the processor. watchdog timer to increase reliability, the adm691?s watchdog timer forces a system reset if a program does not notify the supervisor nominally at least every second. the assumption is that if the program fails to ?hit? the watchdog, the program must be stuck in a loop or halted. the dynamic c function for hitting the
op7100 28 hardware watchdog timer is hitwd . to hold the watchdog timer at bay, make a call to hitwd in a routine that runs periodically at the lowest software priority level. a program can read the state of the wdo line with a call to wderror . this makes it possible to determine whether a watchdog timeout occurred. the following sample program shows how to do this when a program starts or restarts. main(){ if( wderror() ) wd _ cleanup(); hitwd(); ... } power shutdown and reset when vcc (+5 v) drops below v min (between 4.5 v and 4.75 v), the adm691 supervisor asserts /reset and holds it until vcc goes above v min and stays that way for at least 50 ms. this delay allows the system?s devices to power up and stabilize before the cpu starts. pfi ?early warning? when pfi drops below 1.3 v 0.05 v (i.e., dcin drops below ~10 v), the supervisor asserts /nmi (nonmaskable interrupt), and allows the program to clean up and get ready for shutdown. the underlying assump- tion here is that pfi will cause the interrupt during a power failure before the adm691 asserts /reset . in order to improve the performance of the power-failure interrupt circuit, we have added some hysteresis to the power-failure comparator by adding a resistor, r34, between the comparator input and output pins. r34 can be found on the 175-0196 and the 175-0211 versions of the op7100. the hysteresis prevents the comparator from switching rapidly?and therefore generating multiple interrupts?when the input voltage is falling slowly. once the comparator switches (dc in falls to approximately 8.5 v), this feedback holds the input (pfi) low and prevents further interrupts from being generated. at this point, the 5 v regulator still has sufficient voltage to keep the processor operating, so that an interrupt service routine can perform shutdown tasks and ?tidying up? before the vcc line fails. the comparator will not turn the output (pfo) high until dc in has risen to about 9.2 v. the hysteresis will also help prevent any system oscillation in adverse power supply/loading situations. the voltage at which the power-failure interrupt occurs may be changed by adjusting the values of r29 and r30, which are shown in figure 3-3. to calculate the values of these components, let v l be the voltage at which pfo turns off as dc in falls, and let v h be the voltage at which pfo turns on as dc in rises.
op7100 hardware 29 figure 3-3. op7100 power-failure detection circuit since r34 >> rn2, the difference between v h and v l , the hysteresis voltage, would be 5 v (r30/r34). for a nominal hysteresis voltage of 1.25 v, r 30 = 0.25 r34. memory protection when /reset is active, the adm691 supervisor disables the ram chip- select line, preventing accidental writes. battery backup the backup battery protects data in the ram and the real-time clock (rtc). vram, the voltage supplied to the ram and rtc, can also protect other devices attached to the system against power failures. the adm691 super- visor switches vram to vbat or vcc, whichever is greater. (to prevent ?hunting,? the switchover actually occurs when vcc is 50 mv higher than vbat.) the circuit draws no current from the battery once regular power is applied. system reset the adm691 chip drives the /reset line. the /reset line is not pulled up internally.  & 3"   " 7   " 7  ,     &  % :, & ;<=4.0  >  , & >  ,      7  rst     7  ? ? ? ? ? ? ? ? ? ? ? ? + ? ? ? ? ? ? + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? + ? ? ? ? ? ? ? + = r34 r30 r29 r30 1 v 3 . 1 v rn2) v(r34 1.3 v) 1.3 - v 5 ( r30 r29 r30 1 v 3 . 1 v h l
op7100 30 hardware liquid crystal display (lcd) the 240 320 ? vga lcd supports both graphics and text. automatic contrast control is built in so that the contrast, once set, does not drift as the op7100 warms up or is moved. figure 3-4 provides a block diagram of the lcd control and ram circuits. figure 3-4. block diagram lcd control and memory the lcd is connected to the op7100 circuit board through header j1 or j3 on the circuit board. contrast adjustment figure 3-5 shows the location of the manual contrast adjustment. this con- trast adjustment is the factory default for the op7110. the op7100 is configured with software contrast control as the fac- tory default. with software contrast con- trol, the contrast level may be set via a software function call. since it is hard to guess the correct level in software, buttons defined on the op7100 touch- screen and in software can be used to adjust the contrast. a user-supplied key- pad can facilitate this type of software control for the op7110.  figure 3-5. location of op7100 manual contrast adjustment u2 vcc vramcs1 a[0?14] /cs vcc d[0?7] ram u1 vcc vramcs2 a[0?14] /cs vcc d[0?7] ram u3 va [0?14] vd [0?7] frame on/off /reset sed1335f lcd control xd[0?3] /int0 d [0?7] a0 frame xd[0?3] vcc on/off lcd vee adjust vcc r26 10 k ? r31 2.5 k ? ? # !5;- 082 05. @a;.95
op7100 hardware 31 figure 3-6 shows the jumper settings for the contrast control options. figure 3-6. contrast control jumper configurations background the op7100 comes factory-configured to display blue characters on a white (positive) background. the jumpers on header jp1 may be rear- ranged as shown in figure 3-7 to display white characters on a blue (negative) background. figure 3-7. lcd background jumper settings   082 05. @a;.95 !5;- 05. @a;.95   %       %  
  
  

  
           %             %    jp1 u4
op7100 32 hardware coordinate systems figure 3-8 shows the coordinate systems for the touchscreen and the lcd. figure 3-8. coordinate systems (row, column) lcd controller chip the lcd controller chip provides support for the lcd module. the controller chip is attached to the data bus on the op7100, and is mapped to the i/o address space. this interface is composed of eight data bits, one address line, and three control lines (rd, wr, and 1335-cs). the interface from the lcd controller to the lcd module is unidirectional. data flow from the controller chip to the lcd module. a number of control lines are provided for this function, but not all of them are used for a particu- lar lcd module. the controller continually reads the sram for data placed there by the microprocessor, and refreshes the display periodically.  b% %b %b% b  b b b b 

 %b% b% %b b 

 b b b b 

op7100 hardware ? ? ? ? ? 33      

       
    
 

 

      
   

  

                          
     
 

    

      
    

  
    
  
other functions support the lcd module to adjust its contrast and to turn the white ccfl backlight on and off. a variable resistor between two of the lcd module?s terminals sets the contrast, which is set either by soft- ware or manually, depending on the jumper setting on header jp2. once a contrast value is set, it will be maintained. a single programmed i/o bit is used to turn the backlight on or off. the controller chip used in op7100?s sold before 2006 supported either 32k or 64k of sram. these op7100s were designed using a dual- footprint sram to accept either one 32k or two 32k sram. one 32k part was standard. op7100 units sold after june, 2006, have a new lcd controller chip because the previously used lcd controller chip is no longer available. the new lcd controller chip has 32k of internal sram. figure 3-9 shows the area of the op7100 that changed to accommodate the new lcd controller chip. the new lcd controller is not 100% code-compatible with the old chip?the new lcd controller chip section on p. 73 explains how to handle programs developed for an op7100 for the older lcd controller chip. figure 3-9. how to identify pre-2006 op7100 boards
op7100 34 hardware keypad interface the op7100 has a touchscreen, which is connected to the circuit board at header j5. header j6 is available for a customer-supplied keypad for the op7110. table 3-1 lists the pinouts for headers j5 and j6. the pinout for header j5 is identical to the pinout for header j6. figure 3-10 shows the location of headers j5 and j6. figure 3-10. op7100 headers j5 and j6 (keypad interface) figure 3-11 shows a simplified diagram of the keypad interface. figure 3-11. block diagram of op7100 keypad interface table 3-1. op7100 keypad header pinout signal header j5/j6 pin signal header j5/j6 pin row0 1 col0 9 row1 2 col1 10 row2 3 col2 11 row3 4 col3 12 row4 5 col4 13 row5 6 col5 14 row6 7 col6 15 row7 8 col7 16 j6 j5 &  (c$%d >c$%d c$%d 'c$%d %* c$%d
&! ! "#    $%&'%() " ## c$%d &b & ! "*+ "  $  5,   % 7 ?
op7100 hardware 35 digital i/o the op7100 has eight cmos/ttl-level digital inputs and eight cmos/ ttl-level digital outputs. the digital inputs are provided with pullup resistors, shown in figure 3-12, to provide a known state before a digital input is applied.. figure 3-12. op7100 digital inputs the digital i/o are located on header j7, and are available through a con- nector on the outside of the op7100 back cover. figure 3-13 shows the pinout and the location of header j7. figure 3-13. op7100 header j7  7 ? #  #  0 e  ;. ! 5<;  c$%d   %       %      %      & & & & & & & &%                %            %    j7
op7100 36 hardware serial communication two serial channels support asynchronous communication at baud rates from 300 bps to 57,600 bps. serial communication provides a simple and robust means for networking controllers and other devices. figure 3-14 illustrates the configuration of the op7100 serial channels. figure 3-14. serial channels the factory default configuration for the op7100 is for one 5-wire rs-232 port (with rts and cts) and one half-duplex rs-485 port. an rs-485 channel can provide half-duplex asynchronous communication over twisted-pair wires for distances up to 3 km. two other configurations, shown in figure 3-14, are one 3-wire rs-232/one rs-485, and two 3-wire rs-232. the configurations are set with jumpers on header jp3. figure 3-15. serial communication jumper configurations & &     & & f
 f   f
 f     &  & %,, %, '-./) #"%0 f f  f  f         %    !"       %           %    !"
op7100 hardware 37 the jumpers on header jp4 may be reconfigured so that header j11 carries the z180 port 1 tx1 and rx1 rs-232 signals on pins 2 and 3 instead of the factory-default rs-485+ and rs-485? signals. figure 3-16 shows the header jp4 jumper configurations and the location of headers jp3 and jp4. figure 3-16. serial communication options for external plug connector (header j11)      % !" 
#$$     %  
#$$ jp4 jp5 jp3
op7100 38 hardware  
f 
f f 
f 
f  f       %      % rs-232 communication figure 3-17 shows the rs-232 signals on header j8 and header j10 (the de-9 connector). figure 3-17. rs-232 signals pin 9 on header j10, the de-9 connector, may be configured to carry dcin, the input voltage, by adding a 0 ? resistor at r32. be careful when connecting other devices to header j10 when r32 is installed since not all devices can handle dcin. for example, pcs are limited to 12 v. the availability of dcin on pin 9 of header j7 allows a dc power supply to be made available to the device being connected to the op7100. rabbit semiconductor has rs-232 support libraries for z180 ports 0 and 1. the following functional support for serial communication is included. ? initializing the serial ports. ? monitoring and reading a circular receive buffer. ? monitoring and writing to a circular transmit buffer. ? cts (clear to send) and rts (request to send) control for z180 port 0. receive and transmit buffers serial communication is easier with a background interrupt routine that updates receive and transmit buffers. every time a port receives a charac- ter, the interrupt routine places it into the receive buffer. a program can read the data one character at a time or as a string of characters terminated by a special character.
op7100 hardware 39 rx tx gnd rts cts dtr rx tx gnd rts cts modem side op7100 side figure 3-18. connections between controller and modem a program sends data by writing characters into the transmit buffer. if the serial port is not already transmitting, the write functions will automatically initiate transmission. once the last character of the buffer is sent, the transmit interrupt is turned off. a high-level application can write data one character at a time or in a string. cts/rts control the z180?s hardware constrains its port 0 to have the cts (clear to send) pulled low by the rs-232 device to which it is talking. the op7100 does not support cts for the z180?s port 1. modem communication modems and telephone lines facilitate rs-232 communication across great distances. the dynamic c rs-232 library supports communication with a hayes smart modem or compatible. the cts, rts and dtr lines of the modem are not used. if the modem used is not truly hayes smart modem compatible, tie the cts, rts and dtr lines on the mo- dem side together. the cts and rts lines on the controller also have to be tied together. a ?null-modem? cable is also required for the tx and rx lines. a commercial null-mo- dem cable would have its cts and rts lines tied together already on both sides. figure 3-18 shows the wiring for connections between a modem and the op7100.
op7100 40 hardware rs-485 communication figure 3-19 shows the rs-485 sig- nals on header j11. developing an rs-485 network the 2-wire rs-485 serial-commu- nication port and dynamic c net- work software are used to develop an rs-485 network. the op7100 can be linked together with other rabbit semiconductor controllers over a twisted-pair network for up to 1.2 km. when configuring a multidrop net work, use single twisted-pair wires to connect rs-485+ to rs- 485+ and rs-485- to rs-485- as shown in figure 3-20. figure 3-20. rs-485 network      
 
    figure 3-19. rs-485 signals gnd pin01 pin02 pin03 pin04 pin05 pin06 pin07 pin08 +5v pin09 pin10 pin11 pin12 pin13 pin14 pin15 pin16 gnd +dc k gnd hv01 hv02 hv03 hv04 hv05 hv06 hv07 hv08 hv09 hv10 hv11 hv12 hv13 hv14 485+ 485? program run  
 

     
   

 

  !"#       
     $ %&'()*+,-.(/ 0.12+03/0,456.,'2'/7 8/01+13.4+8/-)'1.1/  % 
op7100 hardware 41 any rabbit semiconductor controller or the op7100 can be a master or a slave. a network can have up to 255 slaves, but only one master. a multidrop network requires termination/bias resistors to minimize reflec- tions (echoing) and to keep the network line active during an idle state. the op7100 termination resistors are already installed, and by default are en- abled by having jumpers installed on header j9. remove the jumpers from header j9, as shown in figure 3-21, to disable or remove the termination resistors. only the first and last devices on a multidrop rs-485 network should have the termination resistors enabled. figure 3-21. enabling/disabling termination resistors only a single, solid conductor should be placed in a screw clamp terminal. bare copper, particularly if exposed to the air for a long period before installation, can become oxidized. the oxide can cause a high-resistance (~20 ? ) connection, especially if the clamping pressure is not sufficient. to avoid oxidation, use tinned wires or clean, shiny copper wire. if you are using multiple conductors or stranded wire, consider soldering the wire bundle or using a crimp connector to avoid a later loss of contact pressure to a spontaneous rearrangement of the wire bundle. note that soldering a stranded wire may make the wire subject to fatigue failure at the junction with the solder if there is flexing or vibration.  %&
 '(
) %&
 '*
) j10           j9
op7100 42 hardware table 3-2. z180 serial port registers address name description 00 cntla0 control register a, serial channel 0 01 cntla1 control register a, serial channel 1 02 cntlb0 control register b, serial channel 0 03 cntlb1 control register b, serial channel 1 04 stat0 status register, serial channel 0 05 stat1 status register, serial channel 1 06 tdr0 transmit data register, serial channel 0 07 tdr1 transmit data register, serial channel 1 08 rdr0 receive data register, serial channel 0 09 rdr1 receive data register, serial channel 1 use of the serial ports if you plan to use the serial ports extensively, or if you intend to use syn- chronous communications, rabbit semiconductor recommends that you obtain copies of the following zilog technical manuals, available from zilog, inc, in campbell, california. z180 mpu user?s manual z180 sio microprocessor family user?s manual each serial port appears to the cpu as a set of registers. each port can be accessed directly with the inport and outport library functions using the symbolic constants shown in table 3-2.
op7100 hardware 43 z180 serial ports the z180 ?s two independent, full-duplex asynchronous serial channels have a separate baud-rate generator for each channel. the baud rate can be divided down from the microprocessor clock, or from an external clock for either or both channels. the serial ports have a multiprocessor communications feature. when enabled, this feature adds an extra bit to the transmitted character (where the parity bit would normally go). receiving z180 s can be programmed to ignore all received characters except those with the extra multiprocessing bits enabled. this provides a 1 -byte attention message that can be used to wake up a processor without the processor having to intelligently monitor all traffic on a shared communications link. the block diagram in figure 3-22 shows serial channel 0. serial chan- nel 1 is similar, but control lines for /rts and /dcd do not exist. the five unshaded registers shown in figure 3-22 are directly accessible as internal registers. figure 3-22. z180 serial channel 0 microprocessor internal bus rdr0 tdr0 tsr0 rxa0 txa0 shift register ou t shift register in baud-rate generator cka0 cntla0 stat0 cntlb0 /rts0 /cts0 /dcd0 rsr0
op7100 44 hardware the serial ports can be polled or interrupt-driven. a polling driver tests the ready flags (tdre and rdrf) until a ready condition appears (transmitter data register empty or receiver data register full). if an error condition occurs on receive, the routine must clear the error flags and take appropriate action, if any. if the /cts line is used for flow control, transmission of data is automatically stopped when /cts goes high because the tdre flag is disabled. this prevents the driver from transmitting more characters because it thinks the transmitter is not ready. the transmitter will still function with /cts high, but exercise care because tdre is not available to synchronize loading the data register (tdr) properly. an interrupt-driven port works as follows. the program enables the receiver interrupt as long as it wants to receive characters. the transmitter interrupt is enabled only while characters are waiting in the output buffer. when an interrupt occurs, the interrupt routine must determine the cause: receiver data register full, transmitter data register empty, receiver error, or /dcd0 pin high (channel 0 only). none of these interrupts is edge- triggered. another interrupt will occur immediately if interrupts are re- enabled without disabling the condition causing the interrupt. the signal /dcd0 is grounded on the op7100. table 3-3 lists the interrupt vectors. table 3-3. serial port interrupt vectors address name description 0e ser0_vec z180 serial port 0 (higher priority) 10 ser1_vec z180 serial port 1
op7100 hardware 45 asynchronous serial communication interface the z180 incorporates an asynchronous serial communication interface (acsi) that supports two independent full-duplex channels. asci status registers a status register for each channel provides information about the state of each channel and allows interrupts to be enabled and disabled. stat0 (04h) 76543210 rdrf ovrn pe fe rie /dcd0 tdre tie r r r r r / w r r r / w stat1 (05h) 76543210 rdrf ovrn pe fe rie cts1e tdre tie rrrrr / wrrr / w /dcd0 (data carrier detect) this bit echoes the state of the /dcd0 input pin for channel 0. however, when the input to the pin switches from high to low, the data bit switches low only after stat0 has been read. the receiver is held to reset as long as the input pin is held high. this function is not generally useful because an interrupt is requested as long as /dcd0 is a 1. this forces the program- mer to disable the receiver interrupts to avoid endless interrupts. a better design would cause an interrupt only when the state of the pin changes. this pin is tied to ground in the cm7000. tie (transmitter interrupt enable) this bit masks the transmitter interrupt. if set to 1, an interrupt is requested whenever tdre is 1. the interrupt is not edge-triggered. set this bit to 0 to stop sending. otherwise, interrupts will be requested continuously as soon as the transmitter data register is empty. tdre (transmitter data register empty) a 1 means that the channel is ready to accept another character. a high level on the /cts pin forces this bit to 0 even though the transmitter is ready.
op7100 46 hardware cts1e (cts enable, channel 1) the signals rxs and cts1 are multiplexed on the same pin. a 1 stored in this bit makes the pin serve the cts1 function. a 0 selects the rxs function. (the pin rxs is the csi/o data receive pin.) when rxs is selected, the cts line has no effect. rie (receiver interrupt enable) a 1 enables receiver interrupts and 0 disables them. a receiver interrupt is requested under any of the following conditions: /dcd0 (channel 0 only), rdrf (read data register full), ovrn (overrun), pe (parity error), and fe (framing error). the condition causing the interrupt must be removed be- fore the interrupts are re-enabled, or another interrupt will occur. reading the receiver data register (rdr) clears the rdrf flag. the efr bit in cntla is used to clear the other error flags. fe (framing error) a stop bit was missing, indicating scrambled data. this bit is cleared by the efr bit in cntla. pe (parity error) parity is tested only if mod1 in cntla is set. this bit is cleared by the efr bit in cntla. ovrn (overrun error) overrun occurs when bytes arrive faster than they can be read from the receiver data register. the receiver shift register (rsr) and receiver data register (rdr) are both full. this bit is cleared by the efr bit in cntla. rdrf (receiver data register full) this bit is set when data is transferred from the receiver shift register to the receiver data register. it is set even when one of the error flags is set, in which case defective data is still loaded to rdr. the bit is cleared when the receiver data register is read, when the /dcd0 input pin is high, and by reset and iostop.
op7100 hardware 47 asci control register a control register a affects various aspects of the asynchronous channel operation. cntla0 (00h) 76543210 mpe re te /rts0 mpbr/ efr mod2 mod1 mod0 r / w r / w r / w r / w r / w r / w r / w r / w cntla1 (01h) 76543210 mpe re te cka1d mpbr/ efr mod2 mod1 mod0 r / w r / w r / w r / w r / w r / w r / w r / w mod0?mod2 (data format mode bits) mod0 controls stop bits: 0 ? 1 stop bit, 1 ? 2 stop bits. if 2 stop bits are expected, then 2 stop bits must be supplied. mod1 controls parity: 0 ? parity disabled, 1 ? parity enabled. (see peo in asci control register b for even/odd parity control.) mod2 controls data bits: 0 ? 7 data bits, 1 ? 8 data bits. mpbr/efr (multiprocessor bit receive/error flag reset) reads and writes on this bit are unrelated. storing a byte when this bit is 0 clears all the error flags (ovrn, fe, pe). reading this bit obtains the value of the mpb bit for the last read operation when the multiprocessor mode is enabled. /rts0 (request to send, channel 0) store a 1 in this bit to set the rts0 line from the z180 high. this bit is essentially a 1-bit output port without other side effects. cka1d (cka1 disable) this bit controls the function assigned to the multiplexed pin (cka1/ ~tend0): 1 ? ~tend0 (a dma function) and 0 ? cka1 (external clock i/o for channel 1 serial port). te (transmitter enable) this bit controls the transmitter: 1 ? transmitter enabled, 0 ? transmitter disabled. when this bit is cleared, the processor aborts the operation in progress, but does not disturb tdr or tdre.
op7100 48 hardware re (receiver enable) this bit controls the receiver: 1 ? enabled, 0 ? disabled. when this bit is cleared, the processor aborts the operation in progress, but does not disturb rdrf or the error flags. mpe (multiprocessor enable) this bit (1 ? enabled, 0 ? disabled) controls multiprocessor communica- tion mode which uses an extra bit for selective communication when a number of processors share a common serial bus. this bit has effect only when mp in control register b is set to 1. when this bit is 1, only bytes with the mp bit on will be detected. others are ignored. if this bit is 0, all bytes received are processed. ignored bytes do not affect the error flags or rdrf. asci control register b control register b configures the multiprocessor mode, parity, and baud rate for each channel. ss (source/speed select) coupled with the prescaler ( ps ) and the divide ratio ( dr ), the ss bits select the source (internal or external clock) and the baud rate divider, as shown in table 3-4. cntlb0 (02h) and cntlb1 (03h) 76543210 mpbt mp /cts ps peo dr ss2 ss1 ss0 r / w r / w r / w r / w r / w r / w r / w r / w table 3-4. baud rate divide ratios for source/speed select bits ss2 ss1 ss0 divide ratio 000 1 001 2 010 4 011 8 100 16 101 32 110 64 1 1 1 external clock* * may not exceed system clock 40
op7100 hardware 49 prescaler ( ps ) 10 or 30 processor clock divider 1 2 ... 64 divide ratio ( dr ) 16 or 64 external clock the prescaler (ps), the divide ratio (dr), and the ss bits form a baud-rate generator, as shown in figure 3-23. figure 3-23. z180 baud-rate generator dr (divide ratio) this bit controls one stage of frequency division in the baud-rate generator. if 1 then divide by 64. if 0 then divide by 16. this is the only control bit that affects the external clock frequency. peo (parity even/odd) this bit affects parity: 0 ? even parity, 1 ? odd parity. it is effective only if mod1 is set in cntla (parity enabled). /cts/ps (clear to send/prescaler) when read, this bit gives the state of external pin /cts : 0 ? low, 1 ? high. when /cts is high, rdrf is inhibited so that incoming receive characters are ignored. when written, this bit has an entirely different function. if a 0 is written, the baud-rate prescaler is set to divide by 10. if a 1 is written, it is set to divide by 30. mp (multiprocessor mode) when this bit is set to 1, the multiprocessor mode is enabled. the multi- processor bit (mpb) is included in transmitted data as shown here. start bit, data bits, mpb, stop bits the mpb is 1 when mpbt is 1 and 0 when mpbt is 0. mpbt (multiprocessor bit transmit) this bit controls the multiprocessor bit (mpb). when mpb is 1, transmit- ted bytes will get the attention of other units listening only for bytes with mpb set.
op7100 50 hardware table 3-5. baud rates for asci control register b asci b value baud rate at 9.216 mhz (bps) baud rate at 18.432 mhz (bps) asci b value baud rate at 9.216 mhz (bps) baud rate at 18.432 mhz (bps) 00 57,600 115,200 20 19,200 38,400 01 28,800 57,600 21 9600 19,200 02 or 08 14,400 28,800 22 or 28 4800 9600 03 or 09 7200 14,400 23 or 29 2400 4800 04 or 0a 3600 7200 24 or 2a 1200 2400 05 or 0b 1800 3600 25 or 2b 600 1200 06 or 0c 900 1800 26 or 2c 300 600 0d 450 900 2d 150 300 0e 225 450 2e 75 150 table 3-5 relates the z180?s asci control register b to the baud rate.
op7100 sof tware 51 c hapter 4: s oftware chapter 4 describes the dynamic c functions used with the op7100.
op7100 52 software supplied software software drivers for controlling the op7100 are provided with dynamic c. depending on the version of dynamic c you are using, the op71l.lib / op71p.lib or the ezioop71.lib libraries provide drivers specific to the op7100. in order to use the op71l.lib / op71p.lib and other libraries, it is necessary to include the appropriate dynamic c libraries in your apppli- cation program. these libraries are listed in table 4-1. your application can use these libraries by including them in your pro- gram. to include these libraries, use the #use directive as shown below. #use op71l.lib or #use op71p.lib #use op71hw.lib choose the corresponding landscape or portrait libraries from table 4-1 based on your version of dynamic c and according to whether you will use your op7100 in a landscape or a portrait orientation. see the dynamic c technical reference manual for more information on #use and other directives as well as for information on other libraries. table 4-1. op7100 software libraries library application aascz0.lib serial communication applications z180 serial port 0 aascz1.lib serial communication applications z180 serial port 1 bios.lib bios routines drivers.lib general drivers op71l.lib op71p.lib select one of these dc 32 libraries to #use first, corresponding to landscape mode or portrait mode op71hw.lib dc 32 display hardware functions ezioop71.lib * all op7100 applications glcd.lib * lcd applications kp_op71.lib touchscreen read applications (all dc versions) lqvga.lib * landscape image vga drivers pqvga.lib * portrait image vga drivers sys.lib general drivers * use these libraries with dynamic c v. 5.xx versions.
op7100 sof tware 53 digital i/o no specific drivers have been written for the op7100 digital i/o. the inport and outport functions in the dynamic c bios.lib library can be used to read the inputs and write the outputs. the eight digital inputs (din0?din7) are bitmapped bits 0 through 7 of the input at 0x4140. each digital output (out0?out7) is controlled by bit 0 at 0x4140 through 0x4147. for example, out2 can be turned on using the following statement. outport( 0x4142,1 ); likewise, out7 can be turned off using the following statement. outport( 0x4147,0 ); the inport function reads all eight inputs simultaneously, so the bitwise and operator ( & ) is useful in checking the status of a particular input. for example, the statement if( inport(0x4140) & 0x04 ) can be used to check whether din2 (whose bit mask is 0x04) is on. likewise if( inport(0x4140) & 0x80 ) can be used to check the status of input din7. the dynamic c function ibit can be used to determine the state of one input bit. for example, to check din2 (which is bit 2 of the inputs), use the statement if( ibit(0x4140,2) ) instead of the more complex statement below. if( inport(0x4140) & 0x04 ) while ibit works well for the digital inputs, its output equiv- alents, iset and ires , will not work with the digital output bits because the output register of the op7100 is write-only. iset and ires will only operate on output registers whose current state can be read by the processor. refer to the dynamic c function reference manual for more information on the use of these functions.
op7100 54 software the sample program op71.c below cycles through through the outputs with one bit high at a time while it displays the state of the digital inputs. real-time clock (rtc) the op7100 has an epson 72423 chip. the chip stores time and date, and accounts for the number of days in a month, and for leap year. a backup battery will allow the values in the rtc to be preserved if a power failure occurs. the dynamic c function library drivers.lib provides the following rtc functions. the dynamic c function reference manual describes these functions and the associated data structure tm . ?tm _ rd reads time and date values from the rtc. tm _ wr writes time and date values into the rtc. the following points apply when using the rtc. 1. the am/pm bit is 0 for am, 1 for pm. the rtc also has a 24-hour mode. 2. set the year to 96 for 1996, 97 for 1997, and so on. constantly reading the rtc in a tight loop will result in a loss of accuracy. op71.c void delay( unsigned wdelay ){ for(;--wdelay;hitwd()); } void main( void ){ unsigned waddr; for (;;) for(waddr=0x4140;waddr<0x4148;++waddr){ outport( waddr,0x01 ); printf( "%04x%02x\n",waddr,inport(0x4140) ); delay( 0x8000 ); outport( waddr,0x00 ); } }
op7100 sof tware 55 display flash eprom the writeflash function in the dynamic c drivers.lib library is used to write data to the program flash eprom.  int writeflash( unsigned long physical_addr, char *buf, int count ) writes count number of bytes pointed to by buf to the program flash eprom absolute data location physical _ adr . allocate data location by declaring the byte arrays as initialized arrays or declare an initial- ized xdata array. if byte array is declared, conert logical memory to physical memory with phy _ adr(array) . for initialized xdata , you can pass the array name directly. parameters: physical _ adr is the absolute data location in the flash eprom. *buf is a pointer to the bytes to write. count is the number of bytes to write. return values: 0 if writeflash is okay. -1 if the program flash eprom is not in used. -2 if physical _ addr is inside the bios area. -3 if physical _ addr is within the symbol area or the simulated eeprom area. -4 if writeflash times out. the writeflash function writes to the program flash eprom. see the sys.lib section later in this chapter for the functions associated with the second flash eprom.
op7100 56 software dynamic c 32 libraries when you are using dynamic c 32, you must first #use op71l.lib or #use op71p.lib before the #use op71hw.lib line as shown below. #use op71l.lib or #use op71p.lib #use op71hw.lib call the #use op71p.lib line to use your op7100 in a portrait orienta- tion, or call the #use op71l.lib line to use your op7100 in a landscape orientation. op71hw.lib  void op71init( void ); this call must be used to initialize the op7100 software and hardware. it also clears the lcd buffer and screen, sets the contrast to 35, turns on the lcd power, and turns on the lcd backlight.  void op71backlight( int ison ); turns the op7100 backlight on or off. parameter: ison turns the op7100 backlight on or off. 1 to turn backlight on 0 to turn backlight off  void op71power( int ison ); turns the op7100 power on or off. parameter: ison turns the op7100 power on or off. 1 to turn power on 0 to turn power off  void op71setcontrast( unsigned level ); sets the op7100 contrast level. parameter: level is the contrast level (0?63), visibility increases with a lower level.  void op71blankscreen( void ); blanks (sets to white) the op7100 screen.  void op71fillscreen( char pattern ); fills the op7100 lcd screen with a pattern. the screen will be set to all black if the pattern is 0xff, all white if the pattern is 0x00, and vertical stripes for any other pattern.
op7100 sof tware 57  void op71brdoff485( void ); disables the op7100's rs-485 driver.  void op71brdon485( void ); enables the op7100's rs-485 driver.  void op71beep( int onoff ); controls the op7100's beeper. parameter: onoff is non-zero to beep, zero to stop beep.  void op71bufflock( void ); increments the op7100 lcd screen locking counter. graphics calls are recorded in the lcd memory buffer, but are not transferred to the lcd if the counter is non-zero. op71bufflock() and op71buffunlock() can be nested up to a level of 255, but be sure to balance the calls. it is not a requirement to use these procedures, but a set of op71bufflock and op71buffunlock bracketing a set of related graphics calls speeds up the rendering significantly.  void op71buffunlock( void ); decrements the op7100 lcd screen locking counter. the contents of the lcd buffer are transferred to the lcd if the counter goes to zero.  void op71setbrushtype( int type ); sets the drawing method (or color) of pixels drawn by subsequent graphics calls. parameter: type can be one of the following: gl _ set or op71black draws black pixels gl _ clear or op71white draws white pixels gl _ xor or op71xor draws ? oldpixel xor newpixel ? pixels gl _ block or op71black draws black pixels  int op71getbrushtype( void ); gets the current method (or color) of pixels drawn by subsequent graphics calls. return: the current brush type.
op7100 58 software  void op71left1( int left, int top, int cols, int rows ); scrolls byte-aligned window left one pixel, right column is filled by current pixel type (color). parameters: left is the left edge of the window, must be evenly divisible by 8. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window.  void op71right1( int left, int top, int cols, int rows ); scrolls byte-aligned window right one pixel, left column is filled by current pixel type (color). parameters: left is the left edge of the window, must be evenly divisible by 8. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window.  void op71up1( int left, int top, int cols, int rows ); scrolls byte-aligned window up one pixel, bottom column is filled by current pixel type (color). parameters: left is the left edge of the window, must be evenly divisible by 8. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window. the op71left1 , op71right1 , op71up1 , and op71down1 function calls may be called multiple times to provide a smoother scrolling effect than provided by the scroll function calls. do not change the parameters to preserve the window being scrolled.
op7100 sof tware 59  void op71down1( int left, int top, int cols, int rows ); scrolls byte-aligned window down one pixel, top column is filled by current pixel type (color). parameters: left is the left edge of the window, must be evenly divisible by 8. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window.  void op71hscroll( int left, int top, int cols, int rows, int npix ); scrolls byte-aligned window right or left, opposite edge is filled by white pixels. parameters: left is the left edge of the window, must be evenly divisible by 8. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window. npix is the number of pixels to scroll (negative to scroll left).  void op71vscroll( int left, int top, int cols, int rows, int npix ); scrolls byte-aligned window up or down, right column is filled by current pixel type (color). parameters: left is the left edge of the window, opposite edge is filled by white pixels. top is the top edge of the window. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window. npix is the number of pixels to scroll (negative to scroll up).
op7100 60 software  void op71xputbitmap( int left, int top, int width, int height, unsigned long bitmap ); draws bitmap in the specified space. the data for the bitmap are stored in xmem . automatically calls op71xputfastmap if bitmap is byte- aligned (left-edge and width each evenly divisible by 8). parameters: left is the left edge of the bitmap. top is the top edge of the bitmap. width is the width of the bitmap. height is the height of the bitmap. bitmap is the address of the bitmap in xmem .  void op71xputfastmap( int left, int top, int width, int height, unsigned long bitmap ); draws bitmap in the specified space. the data for the bitmap are stored in xmem . this function is like op71xputbitmap , except that it is faster. the restriction is that the bitmap must be byte-aligned. parameters: left is the left edge of the bitmap. top is the top edge of the bitmap. width is the width of the bitmap. height is the height of the bitmap. bitmap is the address of the bitmap in xmem .  void op71xgetbitmap( int x, int y, int bmwidth, int bmheight, unsigned long xbm ); gets a bitmap from the lcd page buffer and stores it in xmem ram. automatically calls op71xgetfastmap if the bitmap is byte-aligned (the left edge and width are each evenly divisible by 8). parameters: x is the left edge of the bitmap (in pixels). y is the top edge of the bitmap (in pixels). bmwidth is the width of the bitmap (in pixels). bmheight is the height of the bitmap (in pixels). xbm is the xmem ram storage address. figure 3-8 shows the coordinate system for the lcd pixels.
op7100 sof tware 61  void op71xgetfastmap( int x, int y, int bmwidth, int bmheight, unsigned long xbm ); gets a bitmap from the lcd page buffer and stores it in xmem ram. this function is like op71xgetbitmap , except that it is faster. the restriction is that the bitmap must be byte-aligned. parameters: x is the left edge of the bitmap (in pixels), and must be evenly divisible by 8. y is the top edge of the bitmap (in pixels). bmwidth is the width of the bitmap (in pixels), and must be evenly divisible by 8. bmheight is the height of the bitmap (in pixels). xbm is the xmem ram storage address.  void op71plotdot( int x, int y ); draws a single pixel in the lcd buffer, and on the lcd if the buffer is unlocked. parameters: ( x , y ) are the coordinates of the dot.  void op71plotline( int x0, int y0, int x1, int y1 ); draws a line in the lcd buffer, and on the lcd if the buffer is unlocked. parameters: ( x0 , y0 ) are the (x,y) coordinates of one endpoint. ( x1 , y1 ) are the (x,y) coordinates of the other endpoint.  void op71block( int x, int y, int bmwidth, int bmheight ); draws a rectangular block in the page buffer, and on the lcd if the buffer is unlocked. parameters: x is the left edge of the pixel. y is the top edge of the pixel. bmwidth is the width of the block. bmheight is the height of the block.
op7100 62 software  void op71plotcircle( int xc, int yc, int rad ); draws a circle in the lcd page buffer, and on the lcd if the buffer is unlocked. parameters: x is the x-coordinate of the center. y is the y-coordinate of the center. rad is the radius of the circle (in pixels).  void op71fillcircle( int xc, int yc, int rad ); draws a filled circle in the lcd page buffer, and on the lcd if the buffer is unlocked. parameters: x is the x-coordinate of the center. y is the y-coordinate of the center. rad is the radius of the circle (in pixels).  void op71plotvpolygon( int n, int *pfirstcoord ); plots the outline of a polygon in the lcd page buffer, and on the lcd if the buffer is unlocked. parameters: n is the number of vertices. pfirstcoord is a pointer to the array for the vertex with coordinates (x1,y1), (x2,y2),( x3,y3)...  void op71fillvpolygon( int n, int *pfirstcoord ); fills a polygon in the lcd page buffer, and on the lcd screen if the buffer is unlocked. parameters: n is the number of vertices. pfirstcoord is a pointer to the array for the vertex with coordinates (x1,y1), (x2,y2),( x3,y3)...  void op71plotpolygon( int n, int x1, int y1, int x2, int y2, ... ); plots the outline of a polygon in the lcd page buffer, and on the lcd if the buffer is unlocked. parameters: n is the number of vertices. ( x1 , y1 ) are the (x,y) coordinates of the first vertex. ( x2 , y2 ) are the (x,y) coordinates of the first vertex...
op7100 sof tware 63  void op71fillpolygon( int n, int x1, int y1, int x2, int y2, ... ); fills a polygon in the lcd page buffer, and on the lcd if the buffer is unlocked. parameters: n is the number of vertices. ( x1 , y1 ) are the (x,y) coordinates of the first vertex. ( x2 , y2 ) are the (x,y) coordinates of the first vertex...  void op71xfontinit( struct _fontinfo *pinfo, char pixwidth, char pixheight, unsigned startchar, unsigned endchar, unsigned long xmembuffer ); initializes the font descriptor structure, where the font is stored in xmem . each font character's bitmap is column major and is byte- aligned. parameters: pinfo is a pointer to the font descriptor to be initialized. pixwidth is the width of each font item (in pixels). pixheight is the height of each font item (in pixels). startchar is the the first printable character in the font (does not have to be 0). endchar is the the last printable character in the font. xmembuffer is a pointer to a linear array of font bitmaps in xmem .  unsigned long op71fontchar( unsigned long font, char letter ); returns the bitmap address of the character in the font specified. parameters: font is the font address in xmem . letter is the ascii letter code. return: xmem bitmap address of the character in the font, column major and byte-aligned.
op7100 64 software  void op71putfont( int x, int y, struct _fontinfo *pinfo, char code ); puts an entry from the font table to the page buffer, and on the lcd if the buffer is unlocked. each font character's bitmap is column major and byte-aligned. parameters: x is the left edge (in pixels). y is the top edge (in pixels). pinfo is a pointer to the font descriptor. code is the code (character) to display.  int op71getpfstep( void ); gets the current op71printf printing step direction. each step direction is independent of the other, and is treated as an 8-bit signed value. the actual step increments depend on the height and width of the font being displayed, which are multiplied by the step values. use op71setpfstep to control the x and y printing step direction. return: the x step is returned in the msb, and the y step is returned in the lsb of the integer result.  void op71setpfstep( int stepx, int stepy ); sets the op71printf printing step direction. the x and y step direc- tions are independent signed values. the actual step increments depend on the height and width of the font being displayed, which are multi- plied by the step values. use op71getpfstep to examine the current x and y printing step direction. parameters: stepx is the op71printf x step. stepy is the op71printf y step.
op7100 sof tware 65  void op71printf( int x, int y, struct _ fontinfo *pinfo, char *fmt, ... ); prints a formatted string (much like printf ) on the lcd screen. only character codes that exist in the font are printed, others are skipped over. for example, '\b', '\t', '\n', and '\r' (ascii backspace, tab, new line and carriage return, respectively) print if they exist in the font, but have no effect as control characters. use op71setpfstep to control or use op71getpfstep to examine the current x and y printing step direction. parameters: x is the x-coordinate of the text (left edge). y is the y-coordinate of the text (top edge). pinfo is a pointer to the font descriptor. fmt is a pointer to the format string... keypad programming the same library used in dynamic c v. 5.xx, kp _ op71.lib , is used with dynamic c 32. the function calls are described later in this chapter.
op7100 66 software using dynamic c v. 5.xx ezioop71.lib  void op71backlight( int onoff ) turns the backlight of the op7100 on or off. parameter: onoff is non-zero to turn the backlight on, zero to turn the backlight off.  void op71setcontrast( unsigned contrast ) controls the contrast of the lcd. parameter: contrast values range from 0 to 127, 0 for the least contrast (minimum vee), 127 for the most contrast (maximum vee).  void eiobeep( int onoff ) turns the buzzer on or off. parameter: onoff is non-zero to turn the buzzer on, zero to turn the buzzer off. glcd.lib  void glfontinit( struct _fontinfo *pinfo, char pixwidth, char pixheight, unsigned startchar, unsigned endchar, char *bitmapbuffer ) initializes a font descriptor with the bitmap defined in the root memory. for fonts with bitmaps defined in xmem , use glxfontinit . parameters: pinfo is a pointer to the font descriptor to be initialized. pixwidth is the width of each font item ( pixwidth must be uniform for all items). pixheight is the height of each font item ( pixheight must be uniform for all items). startchar is the offset to the first useable item (useful for fonts for ascii or other fonts with an offset). endchar is the index of the last useable font item. bitmapbuffer is a pointer to a linear array of the font bitmap. the bitmap is a column with the major byte aligned.
op7100 sof tware 67  glxfontinit( struct _ fontinfo *pinfo, char pixwidth, char pixheight, unsigned startchar, unsigned endchar, unsigned long xmembuffer ) initializes a font descriptor that has the bitmap defined in xmem . for bitmaps defined in root memory, use glfontinit . parameters: pinfo is a pointer to the font descriptor to be initialized. pixwidth is the width of each font item ( pixwidth must be uniform for all items). pixheight is the height of each font item ( pixheight must be uniform for all items). startchar is the offset to the first useable item (useful for fonts for ascii or other fonts with an offset). endchar is the index of the last useable font item. xmembuffer is a pointer to a linear array of the font bitmap. the bitmap is a column with the major byte aligned.  void glsetbrushtype( int type ) sets the type of brush type and controls how pixels are drawn on the screen until the next call to glsetbrushtype . parameter: type is the type of the brush. the four macros described below have been defined for valid values to pass to the function. all four brush types can be used to display text or bitmaps. do not use gl _ block for glplot or glfill graphics primitive functions. macro description effect gl_set pixels specified by subsequent gl functions will turn on the lcd pixels lcdpix = lcdpix | newpix gl_clear pixels specified by subsequent gl functions will turn off the lcd pixels lcdpix = lcdpix & ~newpix gl_xor pixels specified by subsequent gl functions will toggle the lcd pixels lcdpix = lcdpix ^ newpix gl_block pixels specified by subsequent gl functions will be displayed on the lcd as is lcdpix = newpix
op7100 68 software  int glinit() initializes the lcd module (software and hardware). return value: the status of the lcd. if the initialization was successful, this function returns 0. otherwise, the returned value indicates the lcd status.  int glplotdot( int x, int y ) plots one pixel on the screen at coordinate (x,y). parameters: x is the x coordinate of the pixel to be drawn. y is the y coordinate of the pixel to be drawn. return value: status of the lcd after the operation.  void glplotline( int x1, int y1, int x2, int y2 ) plots a line on the lcd. parameters: x1 is the x coordinate of the first endpoint. y1 is the y coordinate of the first endpoint. x2 is the x coordinate of the second endpoint. y2 is the y coordinate of the second endpoint.  void glprintf( int x, int y, struct _fontinfo *pinfo, char *fmt,... ) prints a formatted string (much like printf ) on the lcd screen. parameters: x is the x coordinate of the text (left edge). y is the y coordinate of the text (top-edge). *pinfo is the pointer to the font descriptor used for printing on the lcd screen. *fmt is the pointer to the format string  void glplotcircle( int xc, int yc, int rad ) draws a circle on the lcd. parameters: xc is the x coordinate of the center. yc is the y coordinate of the center. rad is the radius of the circle.  void glfillcircle( int xc, int yc, int rad ) draws a filled-in circle on the lcd. parameters: xc is the x coordinate of the center. yc is the y coordinate of the center. rad is the radius of the circle.
op7100 sof tware 69  void glplotvpolygon( int n, int *pfirstcoord ) plots a filled-in polygon. parameters: n is the number of vertices. *pfirstcoord is an array of vertex coordinates (x 1 ,y 1 ), (x 2 ,y 2 ), ?  void glplotpolygon( int n, int x1, int y1, int x2, int y2,... ) plots the outline of a polygon. parameters: n is the number of vertices. x1 is the x coordinate of the first vertex. y1 is the y coordinate of the first vertex. x2 is the x coordinate of the second vertex. y2 is the y coordinate of the second vertex.  void glfillvpolygon( int n, int *pfirstcoord ) fills in a polygon. parameters: n is the number of vertices. *pfirstcoord is an array of vertex coordinates (x 1 ,y 1 ), (x 2 ,y 2 ), ?  void glfillpolygon( int n, int x1, int y1, int x2, int y2,... ) fllls in a polygon. parameters: n is the number of vertices. x1 is the x coordinate of the first vertex. y1 is the y coordinate of the first vertex. x2 is the x coordinate of the second vertex. y2 is the y coordinate of the second vertex.  void glputbitmap( int x, int y, int bmwidth, int bmheight, char *bm ) displays a bitmap stored in root memory on the lcd. for bitmaps defined in xmem memory, use glxputbitmap . parameters: x is the x coordinate of the bitmap left edge. y is the y coordinate of the bitmap top edge. bmwidth is the width of the bitmap. bmheight is the height of the bitmap. bm is a pointer to the bitmap. the bitmap format is a column with the major byte aligned for each column.
op7100 70 software  void glxputbitmap( int x, int y, int bmwidth, int bmheight, unsigned long bmptr ) displays a bitmap stored in xmem on the lcd. for bitmaps stored in root memory, use glputbitmap . parameters: x is the x coordinate of the bitmap left edge. y is the y coordinate of the bitmap top edge. bmwidth is the width of the bitmap. bmheight is the height of the bitmap. bmptr is a pointer to the bitmap. the bitmap format is a column with the major byte aligned for each column. kp _ op71.lib  void kpinit( int (*changefn)() ) initializes the kp module. call this function before calling other functions in this library. if the default keypad scanning routine will be used, use kpdefinit instead of this function. parameter: changefn is a pointer to a function that will be called when the driver detects a change (when kpscanstate is called). two arguments are passed to the callback function. the first argument is a pointer to an array that indicates the current state of the keypad. the second is a pointer to an array that indicates what keypad positions are changed and detected by kpscanstate . the byte offset in the array represents the line pulled high (row number), and the bits in a byte represents the positions (column number) read back.  int kpscanstate() scans the keypad and detects any changes to the keypad status. if kpinit is called with a non-null function pointer, that function will be called with the state of the keypad. this function should be called periodically to scan for keypad activities. return value: 0 if there is no change to the keypad, non-zero if there is any change to the keypad.
op7100 sof tware 71  int kpdefstchgfn( char *curstate, char *changed ) this is the default state change function for the default get key function kpdefgetkey . this function is called back by kpscanstate when there is a change in the keypad state. if the current key is not read by kpdefgetkey , the new key pressed will not be registered. parameters: curstate points to an array that reflects the current state of the keypad (bitmapped, 1 indicates key is not currently pressed). changed points to an array that reflects the change of keypad state from the previous scan. (bitmapped, 1 indicates there was a change). return value: -1 if no key is pressed. otherwise kpscanstate returns the normalized key number. the normalized key number is 8*row+col+edge*256 . edge is 1 if the key is released, and 0 if the key is pressed.  int kpdefgetkey() this is the default get key function. it returns the key previously pressed (i.e., from the one-keypress buffer). the key pressed is actually interpreted by kpdefstchgfn , which is called back by kpscanstate . kpdefinit should be used to initialize the module. return value: -1 if no key is pressed. otherwise, kpdefgetkey returns the normalized key number. the normalized key number is 8*row+col+edge*256 . edge is 1 if the key is released, and 0 if the key is pressed.  void kpdefinit() initializes the library to use the default state change function to inter- pret key presses when kpscanstate is called. use kpdefgetkey to get the code of the last key pressed.
op7100 72 software sys.lib  int syschk2ndflash( struct _ flashinfo *pinfo ) checks for the existence and configuration of the second flash eprom mapped to memory space. parameter: pinfo is a pointer to struct _ flashinfo , which stores the configuration of the flash. return value: 0 is returned if the second flash eprom exists and the configuration is valid; otherwise, a negative number is returned.  void sysroot2fxmem( struct _ flashinfo *pinfo, void *src, unsigned long int dest, unsigned integer len ) copies memory content from the root memory space to the second flash eprom mapped to memory space. parameters: pinfo is a pointer to struct _ flashinfo (initialized by syschk2ndflash ). src points to the beginning of the block in root memory to be copied to the second flash eprom. dest (a physical address) points to the beginning of the block in the second flash eprom mapped to memory space. len is the length of the block to be copied.
op7100 sof tware 73 upgrading dynamic c dynamic c patches that focus on bug fixes are available from time to time. check the web site ? www.rabbit.com/support/downloads/ for the latest patches, workarounds, and bug fixes. you may need to download upgraded libraries to run an op7100 purchased after june, 2006. when downloading the libraries from the web site, click on the product- specific links until you reach the links for the op7100 download you require. you will be able to either run the download directly from the web site, or you may choose to save it to run later. new lcd controller chip op7100 units sold after june, 2006, have a new lcd controller chip because the previously used lcd controller chip is no longer available. the new lcd controller is not 100% code-compatible with the old chip, and therefore changes were made to the lcd drivers. the updated drivers for the op7100 are backward-compatible for use with the old lcd controller chip. if you are using a program developed for the now-obsolete lcd controller chip, you will need to replace either the existing dynamic c op71l.lib , op71p.lib , and op71hw.lib libraries or the lqvga.lib and pqvga.lib libraries in your dynamic c installation ? you only have to replace one of these two sets of libraries, depending on which set you used when you created your original application. you may, of course, replace all five libraries, which will allow you to access the other updated set at a later date. unzip the contents of the compressed file you opened or downloaded into a non-dynamic c folder to see the updated library files. if you customized any of these libraries, you should first make backup copies of the libraries you customized. then customize the new libraries, if needed. now copy and paste the new libraries to replace the old versions in the lib folder in your dynamic c installation. you will have to recompile your program once you have replaced the libraries. the changes to the libraries will improve the op7100 screen update time for op7100 units using the new lcd controller chip. otherwise, the form, fit, and function of the op7100 are not affected by the changes. for applications that are operating in the landscape mode using the new op71l.lib library, there is a macro that can be defined to enhance the lcd performance for older op7100s using the original lcd controller chip. add the following macro at the start of your program before the graphic libraries are #used . using the macro may increase your interrupt latency. #define lcd_enhanced_mode
op7100 74 software
op7100 graphics programming 75 c hapter 5: g raphics p rogramming chapter 5 provides helpful guidelines for drawing graphics on the op7100.
op7100 76 graphics programming initialization the op7100, unlike most other rabbit semiconductor controllers, uses the maximum i/o and memory wait states when main() gets control. the wait states can be reduced to improve performance. the following statement sets up the proper wait states for the standard op7100 (using a 90 ns flash memory). outport(dcntl,(inport(dcntl)&0xf)|0x60); the graphic lcd can be set up by a simple function call to op71init(); this function initializes and starts the lcd controller before supplying voltage to the lcd screen. the backlight is controlled by op71backlight(int ison) . pass zero to turn off the backlight (default) or a non-zero value to turn on the backlight. if you have an op7100 equipped with software contrast control, call op71setcontrast(unsigned level) to change contrast. the range of level is from 0 to 63. a level of 30 usually yields reasonable contrast at room temperature. drawing primitives you can draw various objects on the lcd. before doing any drawing, specify the type of the "brush" by calling op71setbrushtype(int type) . four brush macros are supported: gl _ set sets the pixels as specified by the plot commands, but leaves other pixels alone; gl _ clear clears the pixels as specified by the plot commands, but leaves other pixels alone; gl _ xor toggles the pixels as specified by the plot command, but leaves other pixels alone; gl _ block forces the value of pixels in groups of eight vertical pixels. gl _ block is useful when speed is important, the current pixels need to be overwritten, and the overwriting pixels are aligned in eight-pixel rows. plot a pixel  int op71plotdot(int x, int y); x and y are the coordinates, the upper left corner is (0,0). figure 3-8 shows the coordinate system for the lcd pixels.
op7100 graphics programming 77 plot a line  void op71plotline(int x1, int y1, int x2, int y2); ( x1 , y1 ) and ( x2 , y2 ) are the endpoints of the line. plot a circle  void op71plotcircle(int xc, int yc, int rad); ( xc , yc ) is the center of the circle, rad is the radius. plot a polygon  void op71plotpolygon(int n, int x1, int y1,...); n is the number of vertices, ( x1 , y1 ) is the first vertex, followed by the other vertices in the x-first order. fill a circle  void op71fillcircle(int xc, int yc, int rad); similar to op71plotcircle , but paints the circle solid. fill a polygon  void op71fillpolygon(int n, int x1, int y1,...); similar to op71plotpolygon , but paints the polygon solid. note that this function works for polygons with concave angles. draw a bitmap  void op71xputbitmap( int left, int top, int width, int height, unsigned long bitmap ); draws bitmap in the specified space. the data for the bitmap are stored in xmem . automatically calls op71xputfastmap if bitmap is byte- aligned (left-edge and width each evenly divisible by 8). parameters: left is the left edge of the bitmap. top is the top edge of the bitmap. width is the width of the bitmap. height is the height of the bitmap. bitmap is the address of the bitmap in xmem .
op7100 78 graphics programming font and bitmap conversion customers are encouraged to design their own fonts and bitmaps. these restrictions must be followed. ? save bitmaps as windows bitmaps ( .bmp ), not os/2 bitmaps. ? the bitmap can only have two colors. color 0 is the background, and color 1 is the foreground. this is the reverse of most bitmap editors. ? fonts must be bitmapped (not true type) and must be of fixed pitch. ? save font files as .fnt (version 3). the op7100 uses a "vertical stripe" display logic format. the conversion utility programs fntstrip.exe (landscape image) and fntcvtr.exe (portrait image) convert the .fnt and .bmp file format to the rabbit semiconductor vertical stripe format. follow these instructions to use these utilities. 1. create the .fnt or .bmp file that conforms to the restrictions listed above. 2. start fntstrip or fntcvtr . 3. specify the file to convert (select the file from the menu list files of type ), and choose either .fnt or .bmp . entering *.fnt or *.bmp in the file name window will not work. the file must be selected after clicking on font files or bitmap files in the list files of type window. 4. click the ok button or double-click on the file to convert. at this point, the software asks the destination of the conversion. specify a file to store the result (text file) of the conversion. click ok when the file is specified. 5. the title bar displays "[inactive]" when the conversion is done. close the window. dynamic c may be used to edit the text file that was generated. the generated file typically looks as follows. /*automatic output from font converter font file is u:\test\dc5x\samples\qvga\6x8.out. dfversion = 0x300 dfsize = 5148 dfcopyright = (c) copyright 1997,1998 rabbit semi- conductor. all rights reserved. dftype = 0x0 horizontal size is 6 pixels. vertical size is 8 pixels. first character is for code 0x20. tip
op7100 graphics programming 79 last character is for code 0xff. make call to glfontinit(&fi, 6, 8, 32, 127, fontbitmap) to initialize table*/ char fontbitmap[] = { /* char 0x20 of width 6 at 0x5da */ '\x0', '\x0', '\x0', '\x0', '\x0', '\x0', ... '\x0' }; the first task is to rename the array so that it is unique. then you can decide whether the font/bitmap should be stored in root memory or in extended memory. because bitmaps can be large and root memory space is precious, rabbit semiconductor recommends you to use xmem to store the font/bitmap. to store the font/bitmap in xmem , you need to change the following line. char fontbitmap[] = { to xdata fontbitmap { once these changes are made, you can copy and paste the font (as an initialized character array or as an initialized xdata item) into your program or library. remember to #use either the op71l.lib (landscape image) or the op71p.lib (portrait image) library in your program. using the font/bitmap in your program the array does not store the dimensions of the font or the bitmap. this information is contained in the comments. the following lines in the comments indicate the dimensions of the font. /*horizontal size is 6 pixels. vertical size is 8 pixels.*/ for fonts, the comments also indicate the starting character and the ending character code with the following line. /*make call to op71xfontinit(&fi, 6, 8, 32, 127, fontbitmap)*/ the fourth argument is the first character code mapped to the font and the fifth argument is the last character code mapped to the font.
op7100 80 graphics programming to initialize a font information structure (of type struct _ fontinfo ), you can call op71xfontinit for a font stored in xmem . to display a bitmap, call op71xputbitmap to display a bitmap stored in xmem . printing text printing text involves setting the font information structures. call void op71xfontinit(struct _fontinfo *pinfo, char pixwidth, char pixheight, unsigned startchar, unsigned endchar, unsigned long xmembuffer); to initialize a font information structure if the font is stored in xmem . pinfo points to a font information structure, pixwidth is the width of each character (fixed pitch), pixheight is the height of each character, startchar is the ascii code of the first character in the font, endchar is the ascii code of the last character in the font, and xmembuffer is a physical address pointing to the font table stored in xmem . rabbit semiconductor supplies five font sizes for the op7100. the smallest font, engfont6x8 , compiles to xmem , and each character is 6 pixels wide by 8 pixels high. the largest font, engfont17x35 , also compiles to xmem , and each character is 17 pixels wide by 35 pixels high. when you need to print text to the lcd, call void op71printf(int x, int y, struct _ fontinfo *pinfo, char *fmt,...); where ( x , y ) is the upper left corner of the text, pinfo points to a font information structure, fmt points to a format string (much like printf ), and the rest of the parameters specify what to print for each field in the format string (same as printf ).
op7100 graphics programming 81 keypad programming the sample program kpdeflt.c in the dynamic c samples\qvga subdi- rectory demonstrates how to read the keypad. add the following directives at the top of the program to make it possible to use the keypad routines. #use op71l.lib (landscape orientation) or #use op71p.lib (portrait orientation) #use op71hw.lib #use kp _ op71.lib initialization to initialize the keypad driver, call kpdefinit() . this must be per- formed before other keypad operations. scanning the keypad the function kpscanstate() must be called periodically to scan the keypad for changes. in a cooperative multitasking (big-loop style), this function should be called every 25 ms or so. if you are using a real-time kernel, you can also attach this function to one of the tasks and have it invoked approximately every 25 ms. note that this function scans for changes, but it does not report what was changed. reading keypad activities the function kpdefgetkey() returns the interpretation of the state change detected by kpscanstate() into key activities. the means that the kpdefgetkey() function must be called no less frequently than kpscanstate() to ensure no key activity is lost. the function kpdefgetkey() returns an integer. if the integer is ?1, no key activity was detected. otherwise, bit 0 to bit 3 indicates the index of the sense line of the key, and bit 4 to bit 7 indicate the index of the drive line of the key. bit 8 indicates whether the key has been "pressed"?the key was pressed if bit 8 is a 1. note that if two key activities occur between two calls to kpscanstate() , only one key activity is interpreted by the kpdefgetkey() function even though both activities may be registered by the kpscanstate() function. the priority of key interpretation is from drive line 0 (highest priority) to drive line 7. on the same drive line, the priority is from sense line 0 (highest priority) to sense line 7. once a key activity is detected by kpscanstate() , no further key activities will be detected by further calls to kpscanstate() unless kpdefgetkey() is called.
op7100 82 graphics programming
op7100 inst allation 83 c hapter 6: i nstallation chapter 6 provides installation and protective grounding guidelines for the op7100.
op7100 84 installation grounding many of the op7100 ics are sensitive to static. use extra caution when handling units in high-static areas. to meet electromagnetic compatibility requirements, and in particular to prevent misoperation or damage from electrostatic discharges, the bezel must be connected to a protective ground via a low-impedance path. a protective building ground is recommended once the op7100 is installed at the location where it will be used. in addition to providing protection against an unexpected electric shock, the connection to building ground also mitigates any problems from external electrostatic discharges and transients, and dampens any rf emissions. the metal casing is already connected electrically to the bezel, and so does not require a separate ground connection. the connection to the building ground should always be made through the bezel. the recommended way to connect an op7100 to a building ground is to mount the unit in a metal panel that is already grounded. ensure that the areas around the securing nuts are clean and free from corrosion or other contaminants so that a good electrical connection can be realized. alternatively, use a wire with a size of at least 20awg (0.5 mm 2 ), prefer- ably stranded, to establish a connection between one of the bezel mounting studs and the protective building ground. this wire should be as short as possible to keep its impedance low. there is an electrical connection between the op7100 bezel/casing and the connection marked gnd on the power supply header, j11, via a jumper on header jp5. this connection is also the return for the dc power supply and the i/o signals, and should not be relied on for a protective ground connection. remove the jumper across jp5 if you wish to isolate the op7100 bezel/ casing ground from the power supply ground. any common-mode voltage between signal ground and protective ground should be kept below 40 v dc.
op7100 inst allation 85     
,    
,    ! " #$$%    ! &!  ' ( &!  ' ( &!  ' ( jp4 jp5 jp3 figure 6-1 shows the location of header jp5. figure 6-1. location of header jp5 installation guidelines when possible, following these guidelines when mounting an op7100. 1. leave sufficient ventilation space 2. do not install the op7100 directly above machinery that radiates a lot of heat (for example, heaters, transformers, and high-power resistors). 3. leave at least 8" (20 cm) distance from electric power lines and even more from high-voltage devices. 4. when installing the op7100 near devices with strong electrical or magnetic fields (such as solenoids), allow a least 3" (8 cm), more if necessary. the op7100 has strong environmental resistance and high reliability, but you can maximize system reliability by avoiding or eliminating the following conditions at the installation site. ? abrupt temperature changes and condensation ? ambient temperatures exceeding a range of 0c to 50c ? relative humidity exceeding a range of 25% to 65% ? strong magnetism or high voltage ? corrosive gasses ? direct vibration or shock ? excessive iron dust or salt ? spray from harsh chemicals
op7100 86 installation mounting a bezel and a gasket are included with the op7100. when properly mount- ed in a panel, the bezel of the op7100 is designed to meet nema 4 speci- fications for water resistance. since the op7100 employs an lcd display, the viewing angle must be considered when mounting the display. install the op7100 at a height and angle that makes it easy for the operator to see the screen. note that the contrast controls, both manual and software, act as view-angle controls, and should be adjusted to provide theoptimum display quality at the angle from which the display will normally be viewed. bezel-mount installation this section describes and illustrates how to bezel-mount the op7100. follow these steps for bezel-mount installation. 1. cut mounting holes in the mounting panel in accordance with the recommended dimensions in figure 6-2, then use the bezel faceplate to mount the op7100 onto the panel. figure 6-2. recommended cutout dimensions 2. remove all eight 4-40 locking hex nuts from their studs on the bezel, and carefully ?drop in? the op7100 with the bezel and gasket attached. 4.600 (117) 7.000 (178) 3.500 (89) 5.380 (137) 0 .180 (4.5) 1.620 (40) 0.125 d, 8x (3) 1.100 (28) cutout 0.150 (3.8)
op7100 inst allation 87 3. fasten the unit with the eight 4-40 hex nuts that were removed in step 2. carefully tighten the nuts equally until the gasket is compressed to approximately 75% of its uncompressed thickness of 0.125" (3.2 mm). do not tighten each nut fully before moving on to the next nut since this risks distorting either the panel or the bezel (or both). apply only one or two turns to each nut in sequence until all are tightened to the required amount. in order to seal the bezel against the panel, the gasket must be compressed by the pressure of the mounting nuts. if the panel is very thin (<0.06" or 1.6 mm), this pressure may distort the panel, allowing water ingress. in this case, rabbit semicon- ductor recommends using strengthening brackets between the rear of the panel and the mounting nuts as shown in figure 6-3. figure 6-3. strengthening bracket general mounting recommendations if the op7100 is mounted inside a panel, the enclosure must not be airtight to ensure that the touchscreen will not distorted by differences in air pressure. if the op7100 is mounted in a completely airtight enclosure, a pressure differential may build up across the window overlay, and could adversely affect the operation of the touchscreen. tip  ')!  
 

      
   

 

  !"#       
     $ %&'()*+,-.(/ 0.12+03/0,456.,'2'/7 8/01+13.4+8/-)'1.1/  % )!  
op7100 88 installation
op7100 troubleshooting 89 a ppendix a: t roubleshooting appendix a provides procedures for troubleshooting system hardware and software. the sections include the following topics. ? out of the box ? dynamic c will not start ? dynamic c loses serial link ? op7100 repeatedly resets ? common programming errors
op7100 90 troubleshooting out of the box check the items mentioned in this section before starting development. ? verify that the op7100 runs in standalone mode before connecting any devices. ? verify that the entire host system has good, low-impedance, separate grounds for analog and digital signals. the op7100 might be connected between the host pc and another device. any differences in ground potential from unit to unit can cause serious problems that are hard to diagnose. ? do not connect analog ground to digital ground anywhere. ? double-check the connecting ribbon cables to ensure that all wires go to the correct screw terminals on the op7100. ? verify that the host pc?s com port works by connecting a good serial device to the com port. remember that com1/com3 and com2/ com4 share interrupts on a pc. user shells and mouse drivers, in particular, often interfere with proper com port operation. for example, a mouse running on com1 can preclude running dynamic c on com3. ? use the supplied rabbit semiconductor power supply. if another power supply must be used, verify that it has enough capacity and filtering to support the op7100. ? use the supplied rabbit semiconductor cables. the most common fault of user-made cables is failure to properly assert cts. without cts being asserted, theop7100?s rs-232 port will not transmit. assert cts by either connecting the rts signal of the pc?s com port or looping back the op7100?s rts. ? experiment with each peripheral device connected to the op7100 to determine how it appears to the op7100 when powered up, powered down, and/or when its connecting wiring is open or shorted. ? the frame ground and 0 v are connected internally via a jumper on header jp5. remove the jumper if this connection causes problems or is otherwise not required.
op7100 troubleshooting 91 dynamic c will not start in most situations, when dynamic c will not start, an error message announcing a communication failure will be displayed. the following list describes situations causing an error message and possible resolutions. ? wrong communication mode ? both sides must be talking rs-232. ? wrong com port ? a pc generally has two serial ports, com1 and com2. specify the one being used in the dynamic c ?target setup? menu. use trial and error, if necessary. ? wrong operating mode ? communication with dynamic c will be lost when the op7100 is configured for standalone operation. make sure pins 1?2 on header j4 are connected to reconfigure the board for programming mode as described in chapter 2, ?getting started.? if all else fails, connect the serial cable to the op7100 after power up. if the pc?s rs-232 port supplies a large current (most commonly on portable and industrial pcs), some rs-232 level converter ics go into a nonde- structive latch-up. connect the rs-232 cable after power up to eliminate this problem. dynamic c loses serial link if the application disables interrupts for a period greater than 50 ms, dynamic c will lose its serial link with the application. make sure that interrupts are not disabled for a period greater than 50 ms. op7100 repeatedly resets the op7100 resets every 1.0 second if the watchdog timer is not ?hit.? if a program does not ?hit? the watchdog timer, then the program will have trouble running in standalone mode. to ?hit? the watchdog, make a call to the dynamic c library function hitwd .
op7100 92 troubleshooting common programming errors ? values for constants or variables out of range. table a-1 lists accept- able ranges for variables and constants. ? mismatched ?types.? for example, the literal constant 3293 is of type int (16-bit integer). however, the literal constant 3293.0 is of type float . although dynamic c can handle some type mismatches, avoiding type mismatches is the best practice. ? counting up from, or down to, one instead of zero. in software, ordinal series often begin or terminate with zero, not one. ? confusing a function?s definition with an instance of its use in a listing. ? not ending statements with semicolons. ? not inserting commas as required in functions? parameter lists. ? leaving out ascii space character between characters forming a different legal?but unwanted?operator. ? confusing similar-looking operators such as && with & , == with = , and // with / . ? inadvertently inserting ascii nonprinting characters into a source-code file. table a-1. ranges of dynamic c function types type range int ?32,768 (?2 15 ) to +32,767 (2 15 ? 1) long int ? 2,147,483,648 ( ? 2 31 ) to +2147483647 (2 31 ? 1) float 1.18 10 -38 to 3.40 10 38 char 0 to 255
op7100 specifications 93 a ppendix b: s pecifications appendix b provides comprehensive physical, electronic, and environ- mental specifications for the op7100.
op7100 94 specifications electrical and mechanical specifications lcd dimensions figure b-1. op7100 lcd dimensions bezel dimensions figure b-2. op7100 bezel dimensions " g"h "% g "h " g"h " g  "h " g"h - ,1/ 21
1'  13 ),,&,10(  " gh ?? .62.b i ?? .62.b i " < gh %"   g%h " < gh " g"h "% gh "% gh " gh "b < g"h j" gh " gh " gh "% gh " gh " g%h " <" g"h " < g "h 6.299 (160) 0.433 (11.0) 6.579 (167) 4.291 (109) 0.157 typ (4) 0.335 (8.5)  13 1
1,,&,10( '3& 341 3 4) 0.256 (6.5) 0.433 max (11) 3.976 (101) 3.622 (92) 4.803 (122) 5.551 (141) 5.984 (152) 0.984 (25) 0.157 typ (4.0)
op7100 specifications 95 general specifications table b-1 presents the physical, electronic and environmental specifications. table b-1. op7100 general specifications parameter specification module size 6.63" 4.40" 1.36" (168 mm 112 mm 35 mm) bezel size 8.00" 5.4" 0.156" (203 mm 137 mm 4.0 mm) with gasket package size 8.0" 5.4" 1.6" (203 mm 137 mm 41 mm) backlight replaceable dual cold-cathode fluorescent tube rated at 20,000 h to 30,000 h with software on/off control lcd stn, 320 240 pixels, blue on white background. pixel matrix is 115.2 mm 86.4 mm, 0.36 mm pitch. viewing area is 121 mm 91 mm. adjust- able contrast with temperature compensation. touchscreen 8 8 matrix, 225 touch switches with software in- terpolation to 15 15, rated 10 6 contacts operating temperature 0c to 50c, may be stored at ?20c to 70c humidity 5% to 95%, noncondensing power 12 v to 30 v dc, 4.5 w with backlight on, 1.5 w with backlight off digital i/o eight cmos/ttl-level i nputs, ?2.0 v to +7.0 v eight cmos/ttl-level outputs, up to 6 ma per channel processor z180 at 18.432 mhz sram 128k standard, up to 512k vram 32k standard, up to 64k eeprom simulated in flash eprom flash eprom two 256k serial ports one 5-wire rs-232 and one rs-485, one 3-wire rs-232 and one rs-485, or two 3-wire rs-232 serial rate 600 bps to 57,600 bps watchdog yes time/date clock 72423 keypad op7100?touchscreen op7110?up to 8 8 user-supplied backup battery panasonic cr2330, 3 v dc lithium ion, rated life 265 ma ? h
op7100 96 specifications header and jumper configurations figure b-3 shows the locations of the configurable headers on the op7100. table b-2 lists the headers that carry signals. table b-2. op7100 signal headers header description j1 lcd (hard-wired) j2 backlight j3 lcd (ribbon cable) j4 programming port j5 touchscreen interface (op7100 only) j6 keypad interface (op7110 only) j7 digital i/o j8 rs-232 port (header) j10 rs-232 port (de9) j11 dc power supply, rs-485 port   !" &  
          !  j7    
   j10   j9    + '  figure b-3. op7100 headers
op7100 specifications 97 table b-3 lists the jumper configurations.   table b-3. op7100 jumper settings header pins connected function factory default 1?2 5?6 7?8 11?12 positive lcd background (blue characters on white background) jp1 1?3 4?6 7?9 10?12 negative lcd background (white characters on blue background) 1?2 software contrast adjustment op7100 jp2 2?3 manual contrast adjustment op7110 1?2 5?6 9?10 11?12 one 5-wire rs-232, one rs-485 1?2 5?6 one 3-wire rs-232, one rs-485 jp3 3?4 7?8 two 3-wire rs-232 3?4 5?6 rs-485 on j11: 2?3 jp4 1?2 7?8 rs-232 on j11: 2?3 jp5 1?2 connect to connect frame ground to power supply ground connected j4 1?2 connect to enable program mode, disconnect for run mode not connected j9 1?2 3?4 connect to enable termination resistors, disco nnect to disable termination resistors connected 
op7100 98 specifications
op7100 memory, i/o map, and interrupt vectors 99 a ppendix c: m emory , i/o m ap , and i nterrupt v ectors appendix c provides detailed information on memory and an i/o map. the interrupt vectors are also listed.
op7100 100 memory, i/o map, and interrupt vectors op7100 memory figure c-1 shows the memory map of the 1m address space. figure c-1. memory map of 1m address space figure c-2 shows the memory map within the 64k virtual space. figure c-2. memory map of 64k virtual space the various registers in the input/output (i/o) space can be accessed in dynamic c by the symbolic names listed below. these names are treated as unsigned integer constants. the dynamic c library functions inport and outport access the i/o registers directly. data _ value = inport( cntla0 ); outport( cntla0, data _ value ); & e  &   ' ! ! ! ! & & !?.@ !?.@  + f! ! + & e  &   ' & & + f! ! + + 067 & ! 067 &% !  +   + 
op7100 memory, i/o map, and interrupt vectors 101 table c-1. cm7000 execution times for dynamic c operation execution time (s) dma copy (per byte) 0.73 integer assignment ( i=j; )3.4 integer add ( j+k ; )4.4 integer multiply ( j*k; )18 integer divide ( j/k; )90 floating add ( p+q; ) (typical) 85 floating multiply ( p*q; ) 113 floating divide ( p/q; ) 320 long add ( l+m; )28 long multiply ( l*m; )97 long divide ( l/m; ) 415 floating square root ( sqrt(q); ) 849 floating exponent ( exp(q ) ; ) 2503 floating cosine ( cos(q); ) 3049 execution timing the times reported in table c-1 were measured using dynamic c and they reflect the use of dynamic c libraries. the time required to fetch the arguments from memory, but not to store the result, is included in the timings. the times are for a 9.216 mhz clock with 0 wait states. the execution times can be adjusted proportionally for clock speeds other than 9.216 mhz. operations involving one wait state will slow the execution speed about 25%.
op7100 102 memory, i/o map, and interrupt vectors table c-2. z180 internal i/o registers addresses 0x00?0x3f address name description 0x00 cntla0 serial channel 0, control register a 0x01 cntla1 serial channel 1, control register a 0x02 cntlb0 serial channel 0, control register b 0x03 cntlb1 serial channel 1, control register b 0x04 stat0 serial channel 0, status register 0x05 stat1 serial channel 1, status register 0x06 tdr0 serial channel 0, transmit data register 0x07 tdr1 serial channel 1, transmit data register 0x08 rdr0 serial channel 0, receive data register 0x09 rdr1 serial channel 1, receive data register 0x0a cntr clocked serial control register 0x0b trdr clocked serial data register 0x0c tmdr0l timer data register channel 0, least 0x0d tmdr0h timer data register channel 0, most 0x0e rldr0l timer reload register channel 0, least 0x0f rldr0h timer reload register channel 0, most 0x10 tcr timer control register 0x11?0x13 ? reserved 0x14 tmdr1l timer data register channel 1, least 0x15 tmdr1h timer data register channel 1, most 0x16 rldr1l timer reload register channel 1, least 0x17 rldr1h timer reload register channel 1, most continued? memory map input/output select map the dynamic c library functions ibit , iset , and ires in the bios.lib library allow bits in the i/o registers to be tested, set, and cleared. both 16-bit and 8-bit i/o addresses can be used. z180 internal input/output registers addresses 00-3f the internal registers for the i/o devices built into to the z180 processor occupy the first 40 (hex) addresses of the i/o space. these addresses are listed in table c-2.
op7100 memory, i/o map, and interrupt vectors 103 table c-2. z180 internal i/o registers addresses 0x00?0x3f (concluded) address name description 0x18 frc free-running counter 0x19?0x1f ? reserved 0x20 sar0l dma source address channel 0, least 0x21 sar0h dma source address channel 0, most 0x22 sar0b dma source address channel 0, extra bits 0x23 dar0l dma destination address channel 0, least 0x24 dar0h dma destination address channel 0, most 0x25 dar0b dma destination address channel 0, extra bits 0x26 bcr0l dma byte count register channel 0, least 0x27 bcr0h dma byte count register channel 0, most 0x28 mar1l dma memory address register channel 1, least 0x29 mar1h dma memory address register channel 1, most 0x2a mar1b dma memory address register channel 1, extra bits 0x2b iar1l dma i/o address register channel 1, least 0x2c iar1h dma i/o address register channel 1, most 0x2d ? reserved 0x2e bcr1l dma byte count register channel 1, least 0x2f bcr1h dma byte count register channel 1, most 0x30 dstat dma status register 0x31 dmode dma mode register 0x32 dcntl dma/wait control register 0x33 il interrupt vector low register 0x34 itc interrupt/trap control register 0x35 ? reserved 0x36 rcr refresh control register 0x37 ? reserved 0x38 cbr mmu common base register 0x39 bbr mmu bank base register 0x3a cbar mmu common/ bank area register 0x3b?0x3d ? reserved 0x3e omcr operation mode control register 0x3f icr i/o control register
op7100 104 memory, i/o map, and interrupt vectors table c-3. epson 72423 timer registers 0x4180?0x418f address name data bits description 0x4180 sec1 d7?d0 seconds 0x4181 sec10 d7?d0 10 seconds 0x4182 min1 d7?d0 minutes 0x4183 min10 d7?d0 10 minutes 0x4184 hour1 d7?d0 hours 0x4185 hour10 d7?d0 10 hours 0x4186 day1 d7?d0 days 0x4187 day10 d7?d0 10 days 0x4188 month1 d7?d0 months 0x4189 month10 d7?d0 10 months 0x418a year1 d7?d0 years 0x418b year10 d7?d0 10 years 0x418c week d7?d0 day of week 0x418d tregd d7?d0 register d 0x418e trege d7?d0 register e 0x418f tregf d7?d0 register f epson 72423 timer registers 0x4180?0x418f table c-3 lists the epson 72423 timer registers.
op7100 memory, i/o map, and interrupt vectors 105 other registers table c-4 lists the other registers. table c-4. other i/o addresses address name data bits description 4000?403f cs1 chip select 1 4040?407f cs2 chip select 2 4080?40bf cs3 chip select 3 40c0?40ff cs4 chip select 4 4100?413f column chip select 5 4140?417f i/o chip select 6 41c0?41ff wdog d0 watchdog 8000 fshwe flash eprom write enable a000 int1 d0 bit 0 is the power-failure state. c000 wdo watchdog output
op7100 106 memory, i/o map, and interrupt vectors table c-5. interrupt vectors for z180 internal devices address name description ? int0 available for use. 0x00 int1_vec used for power-failure detection 0x02 int2_vec reserved for development board (cm7100), not available for use on cm7200 0x04 prt0_vec prt timer channel 0 0x06 prt1_vec prt timer channel 1 0x08 dma0_vec dma channel 0 0x0a dma1_vec dma channel 1 0x0c csi/o_vec available for programming (cm7200), not available for use on cm7100 0x0e ser0_vec asynchronous serial port channel 0 0x10 ser1_vec asynchronous serial port channel 1 interrupt vectors table c-5 presents a suggested interrupt vector map. most of these interrupt vectors can be altered under program control. the addresses are given here in hex, relative to the start of the interrupt vector page, as determined by the contents of the i-register. these are the default interrupt vectors set by the boot code in the dynamic c eprom. to ?vector? an interrupt to a user function in dynamic c, use a directive such as the following. #int _ vec 0x10 myfunction the above example causes the interrupt at offset 0x10 (serial port 1 of the z180) to invoke the function myfunction() . the function must be declared with the interrupt keyword, as shown below. interrupt myfunction() { ... } refer to the dynamic c manuals for further details on interrupt functions.
op7100 memory, i/o map, and interrupt vectors ? ? ? ? ? 107 power-failure interrupts the int1 line is connected to the power-failure output of the adm691 supervisor. a power-failure interrupt occurs when pfi falls to 1.25 v 0.05 v. this advanced warning allows the program to perform some emergency processing before an unwanted power-down occurs. the following example shows how to handle a power-failure interrupt. #int _ vec int1 _ vec power_fail_isr interrupt power_fail_isr(){ ires(itc,1); // clear bit 1 of itc and disable /int1 body of interrupt routine } you also need to add the following line to main() . iset(itc,1) // enables /int1 interrupt priorities table c-6 lists the interrupt priorities. table c-6. interrupt priorities interrupt priorities (highest priority) trap (illegal instruction) nmi (nonmaskable interrupt) int 0 (maskable interrupts, level 0; three modes) int 1 (maskable interrupts, level 1; plcbus attention line interrupt) int 2 (maskable interrupts, level 2) prt timer channel 0 prt timer channel 1 dma channel 0 dma channel 1 z180 serial port 0 (lowest priority) z180 serial port 1
op7100 108 memory, i/o map, and interrupt vectors
op7100 serial interface board 2 109 a ppendix d: s erial i nterface b oard appendix d provides technical details and baud rate configuration data for rabbit semiconductor?s serial interface board (sib).
110 serial interface board 2 op7100 introduction the sib is an interface adapter used to program the op7100. the sib is contained in an abs plastic enclosure, making it rugged and reliable. the sib enables the op7100 to communicate with dynamic c via the z180?s clocked serial i/o (csi/o) port, freeing the op7100?s serial ports for use by the application during programming and debugging. the sib?s 8-pin cable plugs into the target op7100?s processor via header j4 on the op7100, which is accessed by removing the back cover from the op7100, and a 6-conductor rj-12 phone cable connects the sib to the host pc. the sib automatically selects its baud rate to match the commu- nication rates established by the host pc (9600, 19,200, or 57,600 bps). however, the sib determines the host?s communication baud rate only on the first communication after reset. to change baud rates, change the com baud rate, reset the target op7100 (which also resets the sib), then select reset target from dynamic c. chapter 2 provides detailed information on connecting the sib to the op7100. the sib receives power and resets from the target op7100 via the 8-pin connector j1. therefore, do not unplug the sib from the target op7100 while power is applied. to do so could damage both the op7100 and the sib; additionally, the target may reset. the sib consumes approximately 60 ma from the +5 v supply. the target- system current consumption therefore increases by this amount while the sib is connected to the op7100. when the op7100 is powered up or reset with the sib attached, it is automatically in the program mode. to operate the op7100 in the run mode, remove power, disconnect the sib, and re-apply power to the op7100. never connect or disconnect the sib with power applied to the op7100.
op7100 serial interface board 2 111 top view side view 2.25 (57.2) 12.0 (305) 3.60 (91.4) 0.8 (20) 1.525 (38.7) 1.62 5 (41.3 ) figure d-1. sib external dimensions external dimensions figure d-1 illustrates the external dimensions for the sib.
112 serial interface board 2 op7100
op7100 backup battery 113 a ppendix e: b ackup b attery
op7100 114 backup battery battery life and storage conditions the battery on the op7100 will provide approximately 9,000 hours of backup time for the onboard real-time clock and static ram. however, backup time longevity is affected by many factors including the amount of time the op7100 is unpowered. most systems are operated on a continuous basis, with the battery supplying power to the real-time clock and the sram during power outages and/or during routine maintenance. the time estimate reflects the shelf life of a lithium battery with occasional use rather than the ability of the battery to power the circuitry full time. the battery has a capacity of 265 mah. at 25c, the real-time clock draws 3 a when idle, and the 128k sram draws 4 a. if the op7100 were unpowered 100 percent of the time, the battery would last 32, 000 hours (3.6 years). to maximize the battery life, the op7100 should be stored at room temperature in the factory packaging until field installation. take care that the op7100 is not exposed to extreme temperature, humidity, and/or contaminants such as dust and chemicals. to ensure maximum battery shelf life, follow proper storage procedures. replacement batteries should be kept sealed in the factory packaging at room temperature until installation. protection against environmental extremes will help maximize battery life. replacing the lithium battery the battery is user-replaceable, and is fitted in a battery holder. to replace the battery, lift up on the spring clip and slide out the old battery. use only a panasonic cr2330 or equivalent replacement battery, and insert it into the battery holder with the + side facing up. note that the sram contents and the real-time clock settings will be lost if the battery is replaced with no power applied to the op7100. therefore, if you do replace the battery with external power applied to the op7100, exercise caution since high voltages are present in the vicinity of t1 on the side of the printed circuit board opposite to the battery holder.
op7100 backup battery 115 battery cautions caution (english) there is a danger of explosion if battery is incorrectly replaced. replace only with the same or equivalent type recommended by the manufacturer. dispose of used batteries according to the manufacturer?s instructions. warnung (german) explosionsgefahr durch falsches einsetzen oder behandein der batterie. nur durch gleichen typ oder vom hersteller empfohlenen ersatztyp ersetzen. entsorgung der gebrauchten batterien gem?b den anweisungen des herstellers. attention (french) il y a danger d?explosion si la remplacement de la batterie est incorrect. remplacez uniquement avec une batterie du mme type ou d?un type quivalent recommand par le fabricant. mettez au rebut les batteries usages conformment aux instructions du fabricant. cuidado (spanish) peligro de explosin si la pila es instalada incorrectamente. reemplace solamente con una similar o de tipo equivalente a la que el fabricante recomienda. deshagase de las pilas usadas de acuerdo con las instrucciones del fabricante. waarschuwing (dutch) explosiegevaar indien de batterij niet goed wordt vervagen. vervanging alleen door een zelfde of equivalent type als aanbevolen door de fabrikant. gebruikte batterijen afvoeren als door de fabrikant wordt aangegeven. varning (swedish) explosionsf?ra vid felaktigt batteribyte. anv?nd samma batterityp eller en likv?rdigt typ som rekommenderas av fabrikanten. kassera anv?nt batteri enligt fabrikantens instruktion.
op7100 116 backup battery
op7100 index 117 i ndex symbols #int_vec ................................ 106 #use directive ........................... 52 /cs1 ? /cs6 ............................... 105 /cts ............................. 44, 45, 49 /cts/ps ..................................... 49 /dcd0 .................................. 43?46 line to ground ......................... 44 /nmi ......................................... 107 /reset ............................... 28, 29 /rts0 ......................................... 47 /rts1 ......................................... 43 /tend0 ...................................... 47 /wdo ......................................... 28 = (assignment) use .......................................... 92 691 supervisor ............ 26?29, 107 system reset ............................ 29 a asci ............................ 47, 48, 50 control register a ................. 47 control register b ................. 48 status registers ........................ 45 asynchronous channel operation .. 47 b background negative (blue with white characters) .......................... 31 positive (white with blue characters) .......................... 31 backlight .................................... 13 backup battery ..................... 26, 29 cautions ................................ 114 replacing .............................. 114 battery-backed ram ................. 13 baud rates ..................... 36, 49, 50 bezel dimensions ............................. 94 bitmap conversion ...................... 78 block diagram internal power regulators ....... 25 keypad interface ..................... 34 lcd ....................................... 30 op7100 subsystems ............... 24 serial channels ........................ 36 z180 serial channel 0 ........... 43 board layout ............................... 12 buffer receive ............................. 38, 39 transmit ........................... 38, 39 c ce compliance ........................... 15 cka1 ......................................... 47 cka1 disable ............................. 47 cka1/~tend0 .......................... 47 cka1d ....................................... 47 clear to send/prescaler .............. 49 clock real-time ................... 13, 29, 54 clock frequency system ...................... 48, 49, 50 cntla ...................................... 46 cntlb ...................................... 48
op7100 118 index common problems programming errors ............... 92 communication rs-232 ............... 13, 36, 38?40 rs-485 ..................... 13, 36, 40 serial ................. 13, 36, 38?40, 42?45, 47, 48, 50, 102 interrupts ............................ 38 computing module ..................... 24 contrast control ................... 13, 30 csi/o (clocked serial i/o) ......... 46 cts .............................. 38, 39, 46 cts enable ................................ 46 cts1 .......................................... 46 d data carrier detect ...................... 45 data format mode bits ................ 47 data mode modem communication .......... 39 dcin ......................................... 28 digital i/o ............................ 13, 35 dimensions bezel ................................ 94, 95 lcd ....................................... 94 module ................................... 95 sib ........................................ 111 divide ratio ................................. 49 dr .............................................. 49 draw a bitmap ............................ 77 drivers ........................................ 52 dtr ............................................ 39 dynamic c .......................... 14, 22 downloading updates ............. 73 sample programs .................... 22 serial options .......................... 22 e eeprom ................................... 24 constants .............................. 106 reserved addresses ................. 24 simulated in flash eprom .... 24 efr ............................................ 46 efr bit ....................................... 46 electrostatic precautions ............ 84 epson 72423 real-time clock ..... 54 execution times ........................ 101 f fe ....................................... 46, 47 features ....................................... 13 fill a circle .................................. 77 fill a polygon .............................. 77 float use .......................................... 92 fntcvtr.exe ........................... 78 fntstrip.exe ......................... 78 font and bitmap conversion ....... 78 sample program ..................... 78 using in program .................... 79 framing error .............................. 46 frequency lcd controller ....................... 24 system clock ............. 48, 49, 50 z180 ....................................... 24 g graphics programming drawing primitives ................. 76 draw a bitmap .................... 77 fill a circle .......................... 77 fill a polygon ...................... 77 plot a circle ........................ 77 plot a line ........................... 77 plot a pixel ......................... 76 plot a polygon .................... 77 font and bitmap conversion ... 78 initialization ........................... 76 keypad programming ............. 81 printing text ............................ 80 grounding ................................... 84 bezel connection .................... 84 gnd vs. protective ground .... 84 metal casing ........................... 84
op7100 index 119 h handshaking rs-232 ................................... 38 hayes smart modem ................. 39 headers ....................................... 96 j1 ........................................... 96 j10 ......................................... 96 j11 ................................... 40, 96 j2 ........................................... 96 j3 .................................... 30, 96 j4 .................................... 96, 97 j5 .................................... 34, 96 j6 ............................. 21, 34, 96 j7 .................................... 35, 96 j8 ........................................... 96 j9 .................................... 41, 97 jp1 ......................................... 31 jp2 ......................................... 31 jp3 .................................. 36, 37 jp4 ......................................... 37 hitwd .......................... 27, 28, 91 hysteresis circuit selecting external resistors for voltage divider ................... 28 i inputs/outputs devices ................................. 102 map ...................................... 102 space .................................... 102 installation compressing gasket ................ 87 guidelines ............................... 85 mounting methods .................. 86 strengthening bracket ............. 87 int type specifier, use .................. 92 interface asynchronous serial ports ....... 43 serial communications ........... 50 interrupts ..................... 44?46, 106 interrupt vectors ............ 44, 106 default .............................. 106 power-failure .................. 26, 107 priorities ............................... 107 serial communication ............. 38 j jumper settings ........................... 97 contrast control ............... 31, 97 frame ground ................... 85, 97 j4 .................................... 21, 97 j9 .................................... 41, 97 jp1 .................................. 31, 97 jp2 .................................. 31, 97 jp3 .................................. 36, 97 jp4 .................................. 37, 97 jp5 .................................. 85, 97 lcd background ............ 31, 97 program/run mode .......... 21, 97 programming via serial port 0 ... 21 rs-485 termination resistors 40, 97 serial communication 36?37, 97 k keypad interface ......................... 34 keypad programming ................. 81 reading keypad ....................... 81 scanning keypad ..................... 81 l lcd .................................... 13, 30 background color ................... 31 contrast adjustment ................ 30 contrast control jumper configu- rations ................................ 31 dimensions ............................. 94 manual contrast adjustment ... 31 software contrast adjustment . 30 lcd controller .................... 24, 32 handling applications developed for older chip ..................... 73 identifying new part ............... 33
op7100 120 index libraries ...................................... 52 literal (c term) use .......................................... 92 lithium battery .......................... 114 m memory ............................... 12, 13 application program ............... 12 battery-backed ....................... 30 random access ................. 26, 29 screen bitmaps ....................... 12 memory cycles execution timing .................. 101 memory map ............................ 100 mod0 ......................................... 47 mod1 .................................. 46, 47 mod2 ......................................... 47 modem commands ..................... 39 modem communication .............. 39 serial link wiring .................... 39 modem option ............................ 39 mp ....................................... 48, 49 mpbr/efr ................................ 47 mpbt ......................................... 49 mpe ........................................... 48 multiprocessor bit receive/error flag reset .................................... 47 multiprocessor bit transmit ........ 49 multiprocessor enable ................ 48 multiprocessor mode ........... 47, 49 n network rs-485 ................................... 40 no _ carrier message ............... 39 null modem ................................ 39 o op7100 demonstration ........................ 19 models .................................... 13 setup ....................................... 18 output rs-232 ................................... 38 overrun ....................................... 46 overrun error .............................. 46 ovrn .................................. 46, 47 p parity .......................................... 49 parity error ................................. 46 parity even/odd .......................... 49 pe ....................................... 46, 47 peo ............................................ 49 pfi ............................. 26, 28, 107 pinout digital i/o ............................... 35 plot a circle ................................ 77 plot a line ................................... 77 plot a pixel ................................. 76 plot a polygon ............................ 77 ports serial ........................ 38, 42, 44 asynchronous ..................... 43 multiprocessor communication feature ................................ 43 power ................................ 28, 107 sib ....................................... 110 power failure .............................. 26 interrupts ....................... 13, 107 sample program ..................... 26 power supply backlig ht ................................ 25 high voltage ........................... 25 vcc ....................................... 25 vee ....................................... 25 prescaler ..................................... 49 printing text ................................ 80 programming directly through serial port 0 . 20 r ram battery-backed ....................... 13 static ......................... 26, 29, 30
op7100 index 121 rdr ........................................... 46 rdrf ........................... 44, 46, 48 re .............................................. 48 read data register full ................. 46 read-only memory ...................... 13 real-time clock (rtc) .. 13, 29, 54 receive buffer ...................... 38, 39 receiver data register .................. 46 receiver data register full ........... 46 receiver enable ........................... 48 receiver interrupt enable ............ 46 receiver interrupts ........ 44, 45, 46 receiver shift register ................. 46 registers z180 ..................................... 102 request to send ........................... 47 reset .............................. 26, 28, 29 rom programmable ........................ 13 rs-232 serial communication ....................... 13, 36, 38?40 handshaking ........................... 38 serial output ........................... 38 rs-485 serial communication ............................. 13, 36, 40 network .................................. 40 rsr ........................................... 46 rts ..................................... 38, 39 rts0 .......................................... 47 rx line ....................................... 39 rxs ............................................ 46 s sample programs demonstration ........................ 19 digital i/o ............................... 54 font and bitmap conversion ... 78 serial channel 0 block diagram ........................ 43 serial channel 1 ......................... 43 serial communication ... 13, 36?40, 42?45, 47, 48, 50, 102 serial interface board. see sib serial link wiring ........................ 39 serial ports ................... 38, 42, 44 asynchronous ......................... 43 multiprocessor communications feature ................................ 43 sib .................................... 21, 110 baud rate .............................. 110 dimensions ..... ....................... 111 pc connections .................... 110 power ................................... 110 program mode ...................... 110 run mode .............................. 110 software .............................. 14, 52 backlight on/off ............... 56, 66 buzzer on/off ................... 57, 66 contrast control ............... 56, 66 digital i/o ibit ................................... 53 inport 42, 53, 100, 102, 107 ires .................................. 53 iset ................................... 53 outport 42, 53, 76, 100, 102 ezioop71.lib eiobeep ............................ 66 op71backlight ............... 66 op71setcontrast ........... 66 glcd.lib glfillcircle ................. 68 glfillpolygon ............... 69 glfillvpolygon ............. 69 glfontinit ..................... 66 glinit .............................. 68 glplotcircle ................. 68 glplotdot ........................ 68 glplotline ..................... 68 glplotpolygon ............... 69 glplotvpolygon ............. 69 glprintf .......................... 68 glputbitmap ................... 69 glsetbrushtype ............. 67 glsetbrushtype (macros) . 67 glxfontinit ................... 67 glxputbitmap ................. 70
op7100 122 index software (continued) kp _ op71.lib kpdefgetkey ............ 71, 81 kpdefinit ................. 71, 81 kpdefstchgfn ................. 71 kpinit .............................. 70 kpscanstate ............ 70, 81 lcd ................................ 66, 72 libraries .................................. 52 aascz0.lib ..................... 52 aascz1.lib ..................... 52 bios.lib .......................... 52 drivers.lib ............ 54, 55 ezioop71.lib .......... 52, 66 glcd.lib .......................... 66 kp _ op71.lib ............ 70, 81 lqvga.lib ........................ 52 op71hw.lib ....... 52, 56, 81 op71l.lib ................. 52, 56 op71p.lib ................. 52, 56 pqvga.lib ........................ 52 sys.lib ..................... 52, 72 op71hw.lib op71backlight ............... 56 op71beep .......................... 57 op71blankscreen ........... 56 op71block ........................ 61 op71brdoff485 ............... 57 op71brdon485 ................. 57 op71bufflock ................. 57 op71buffunlock ............. 57 op71down1 ........................ 59 op71fillcircle ...... 62, 77 op71fillpolygon .... 63, 77 op71fillscreen ............. 56 op71fillvpolygon ......... 62 op71fontchar ................. 63 op71getbrushtype ......... 57 op71getpfstep ............... 64 op71hscroll ................... 59 op71init .......................... 56 op71left1 ........................ 58 op71plotcircle ...... 62, 77 op71plotdot ............ 61, 76 op71plotline .......... 61, 77 op71plotpolygon .... 62, 77 op71plotvpolygon ......... 62 op71power ........................ 56 op71printf .............. 65, 80 op71putfont ................... 64 op71right1 ..................... 58 op71setbrushtype .. 57, 76 op71setbrushtype (macros) ........................ 76 op71setcontrast ........... 56 op71setpfstep ............... 64 op71vscroll ................... 59 op71xfontinit ........ 63, 80 op71xgetbitmap ............. 60 op71xgetfastmap ........... 61 op71xputbitmap ...... 60, 77 op71xputfastmap ........... 60 read/write flash eprom . 55, 72 writeflash ..................... 55 real-time clock ....................... 54 sys.lib syschk2ndflash ............. 72 sysroot2fxmem ............... 72 time/date clock tm _ rd ................................ 54 tm _ wr ................................ 54 touchscreen ............................ 70 source (c term) use .......................................... 92 source/speed select .................... 48 specifications ............................. 95 ss0 ............................................ 48 ss1 ............................................ 48 ss2 ............................................ 48 stat0 ........................................ 45 supervisor (691) .......... 26?29, 107 system reset ............................ 29 system clock frequency .. 43, 48?50 system reset ................................ 29
op7100 index 123 t tdr ..................................... 44, 47 tdre ........................... 44, 45, 47 te .............................................. 47 tie ............................................. 45 time/date clock .................... 13, 54 registers ................................ 104 timer watchdog ................... 13, 26?28 tool kit contents .................................. 14 touchscreen initialization ........................... 70 reading ............................ 70, 71 transmit buffer ..................... 38, 39 transmitter data register ............. 45 empty ..................................... 45 transmitter enable ....................... 47 transmitter interrupt ................... 44 transmitter interrupt enable ........ 45 troubleshooting cables ..................................... 90 com port ........................ 90, 91 communication mode ............. 91 grounds .................................. 90 operating mode ...................... 91 power supply .......................... 90 repeated resets ....................... 91 tx line ........................................ 39 v vbat ......................................... 29 vee ........................................... 25 vmin ........................................ 28 vram ....................................... 29 w watchdog timer ............. 13, 26?28 wderror .................................... 28 z z180 internal i/o registers ............ 102 serial port 1 ......................... 106
op7100 124 index
op7100 schematics s chematics 090-0071 op7100 schematic www.rabbit.com/documentation/schemat/090-0071.pdf you may use the url information provided above to access the latest schematic directly.
xx0000 schematics


▲Up To Search▲   

 
Price & Availability of 20-101-0303

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X